如何在SQL数据库中搜索现有值?

时间:2011-04-28 05:57:10

标签: c# sql sql-server

我创建了一个程序,允许用户登录并输入他们拥有的汽车的品牌/型号/年份。我想随机生成一个CarID,分配给添加到数据库中的每辆车。我使用以下代码创建了一个随机数生成器:

Random random = new Random();
int CarID = random.Next(10000);

然后我将使用以下代码在SQL数据库中插入代码:

SqlDataSource2.InsertParameters["CarID"].DefaultValue = Convert.ToString(CarID);

我想要做的是首先在数据库中搜索随机生成的数字,以确保它不存在。如果数据库中确实存在该数字,则随机数生成器将尝试新的数字,直到找到不在数据库中的数字。任何帮助将不胜感激,谢谢。

2 个答案:

答案 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