我创建了一个程序,允许用户登录并输入他们拥有的汽车的品牌/型号/年份。我想随机生成一个CarID,分配给添加到数据库中的每辆车。我使用以下代码创建了一个随机数生成器:
Random random = new Random();
int CarID = random.Next(10000);
然后我将使用以下代码在SQL数据库中插入代码:
SqlDataSource2.InsertParameters["CarID"].DefaultValue = Convert.ToString(CarID);
我想要做的是首先在数据库中搜索随机生成的数字,以确保它不存在。如果数据库中确实存在该数字,则随机数生成器将尝试新的数字,直到找到不在数据库中的数字。任何帮助将不胜感激,谢谢。
答案 0 :(得分:2)
为什么不使用自动递增标识列?还是一个GUID?
给定一个带有标识列的表,您可以使用它来插入数据并检索新ID
INSERT INTO Cars
(Make, Model, Year)
VALUES
'Ford', 'Festiva', 1986
SELECT @@IDENTITY
这是您想要熟悉的所有SQL数据库的基本功能。我推荐亚马逊上的任何一本初学者SQL书籍,与一些基本的SQL数据概念的SQL for Smarties配对。
答案 1 :(得分:1)
我认为你要找的是GUID,而不是随机数。 GUID在MS SQL Server中存储为uniqueatntifier数据类型,并且保证它们是唯一的。我知道,它也引起了我的注意。如果你不相信我,请查看文档,但是使用guid插入行的代码非常简单:
insert into someTable (id, name)
values newid(), 'some name'
uniqueidentifier的文档:http://msdn.microsoft.com/en-us/library/ms187942.aspx