绿色资源网:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|论坛转帖|厂商大全

绿色资源网

技术教程
您的位置:首页数据库类SQL Server → 数据库级别判断数据重复

数据库级别判断数据重复

我要评论 2012/08/14 12:02:07 来源:绿色资源网 编辑:downcc.com [ ] 评论:0 点击:210次

建立表语句 在数据库 添加一个表并对字段添加唯一约束。msdn上认为建唯一约束会自动创建相应的唯一索引。

1 USE AdventureWorks2012;
2 GO
3 CREATE TABLE Production.TransactionHistoryArchive4
4 (
5 TransactionID int NOT NULL,
6 CONSTRAINT AK_TransactionID UNIQUE(TransactionID)
7 );
8 GO

插入测试sql   

1 INSERT INTO [db].[dbo].[TransactionHistoryArchive4]
2 ([TransactionID])
3 VALUES
4 (1)
5 GO

这时候我写的测试语句 当我第一次执行时 显示 (1 行受影响) 数据库数据正常
第二次执行语句时就会报错
1 消息 2627,级别 14,状态 1,第 1 行
2 违反了 UNIQUE KEY 约束 'AK_TransactionID'。不能在对象 'dbo.TransactionHistoryArchive4' 中插入重复键。
3 语句已终止。

消息2627是我需要的信息。因为C#中提供了SqlException来捕获数据库发生的异常。根据消息id就可以判断出错误类型 好久不写ado代码了

1 try
2 {
3 using (SqlConnection connection = new SqlConnection(connectionString))
4 {
5 SqlCommand command = new SqlCommand(queryString, connection);
6 command.Connection.Open();
7 command.ExecuteNonQuery();
8 }
9
10 }
11 catch (SqlException sqlException)
12 {
13
14
15 if (sqlException.Number == 2627)
16 errmsg = "errmsg";
17 else
18 errmsg = "其他异常";
19
20
21 }
遇见了就不要错过

作者 likunran

关键词:数据库

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 欢迎喜欢
  • 0 白痴
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙视