首页 新闻 会员 周边 捐助

.NET面试中的难题,请各位前辈帮忙看看

0
悬赏园豆:10 [待解决问题]

      各位前辈,你们好!  小弟刚毕业正在找工作,昨天面试遇到一个难题请教了好多同学都无解,现在将自己的想法思路列出来,请各位前辈指点,谢谢!

题目:建一个数据库表user:

id     no          name    mobile              birthdate

1  S0001  张三  134********   1990-03-02

2  S0002  王五  134********  2005-7-1

表的输入要求是:id字段是递增;用户编号no是顺序递增不能重复,格式用S字母+4位数字;mobile电话号必须以134开头的11位随机数字。

编写同时启动10个线程,每个线程插入10000个用户数据,同时实现以关键字no,name,mobile,birthdate的查询。

 

小弟的解题思路:

先用存储过程实现对表的种操作,再写一个类实现数据封装和逻辑验证,但具体代码试了几次都不成功,请各位指点,谢谢!

KevinWong2008的主页 KevinWong2008 | 菜鸟二级 | 园豆:212
提问于:2012-06-24 12:14
< >
分享
所有回答(8)
0

是让你在计算机上做这么一个程序吧?带数据库的

zhangyuhang | 园豆:202 (菜鸟二级) | 2012-06-24 12:24
0

线程的同步是个挑战

Alvin | 园豆:828 (小虾三级) | 2012-06-24 12:43
1

多线程问题,id,数据库自增,不用管它, no获取完数据,插入之前,先写个函数 取数据库中最大的那个值 然后+1 重新赋值,电话就简单了 134+ radom() 产生一个8位数。然后 就同时启动10个线程进行插入啊。

朝八晚五的小程序员 | 园豆:9 (初学一级) | 2012-06-24 13:12
0

"但具体代码试了几次都不成功"  出现什么错误?你具体是怎么做的?最终想完成什么目的??

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-24 14:15
0

三楼说的 不错

落幕残情 | 园豆:34 (初学一级) | 2012-06-25 11:28
0

唯一的问题应该是在“用户编号顺序递增不能重复”。对获取用户编号的方法上锁即可。

private static Object o = new Object();
        public static String GetUserNo()
        {
            String reuslt = String.Empty;
            lock (o)
            { 
                //do something
            }
            return reuslt;
        }
写代码的小2B | 园豆:4377 (老鸟四级) | 2012-06-25 12:36
0

用户编号no设计的有问题,位数不够哦

飞浪 | 园豆:243 (菜鸟二级) | 2012-06-25 16:29
0

错题吧~~~9999最大的咋整

cnb_mtime | 园豆:58 (初学一级) | 2012-07-04 14:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册