c#, 循环获取 DateTime.Now.Ticks 的问题

在for循环里获取DateTime.Now.Ticks.ToString()当数据库主键,可能是因为计算机运行速度太快的原因,所以获取到了重复的刻度。在插入数据库的时候就... 在for循环里获取DateTime.Now.Ticks.ToString()当数据库主键,可能是因为计算机运行速度太快的原因,所以获取到了重复的刻度。在插入数据库的时候就违反了主键约束。应该怎么避免呢? 展开
 我来答
旁笑槐NH
2009-11-23 · TA获得超过2545个赞
知道大有可为答主
回答量:2686
采纳率:0%
帮助的人:2897万
展开全部
可以直接用数据库的timestamp类型,是一个时间戳,类似于ticks。
如果只是要不重复的主键也可以用GUID类的NewGuid生成一个全局唯一描述符
正能量女战神
高粉答主

2016-03-10 · 关注我不会让你失望
知道大有可为答主
回答量:1.8万
采纳率:80%
帮助的人:2100万
展开全部
  DateTime.Now的精度是很低,这个低的意思是,两次获取的DateTime.Now的Ticks的差,只是一个较大数的整数倍。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thejiathe
2009-11-23 · TA获得超过279个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:305万
展开全部
取完一条就让他线程暂停一小下嘛。

WebForm还是WinForm?
Web这样写的System.Threading.Thread.Sleep(300);//阻塞线程0.3秒
这样你获取的就不会相同了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
有一天也许
2009-11-23 · TA获得超过139个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:215万
展开全部
这个主键可以用数据库的newid()函数来得到,这个是不会重复的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郏鸿祯C6
2009-11-23 · TA获得超过4549个赞
知道小有建树答主
回答量:1601
采纳率:50%
帮助的人:1203万
展开全部
改成DateTime.Now.Millisecond;试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式