SqlCommandBuilder更新数据库的问题
C# 用SqlCommandBuilder更新数据库,但它是自动生成sql语句,现在我想让更新、插入时不能让添加的名字重复,怎么修改?当添加、修改的时候就是想让TriggerName 字段的名字不重复,如果使用SqlCommandBuilder更新数据库,应该怎么做
--------------------编程问答-------------------- 这个不应该用update、Insert的sql语句来实现,更新之前应该对DataTable进行数据验证,检查TriggerName是否重复,如果重复则不更新和添加,返回让用户修改到不重复为止, --------------------编程问答-------------------- 那个循环应该怎么验证? --------------------编程问答-------------------- 循环列举所有的DataRow,对每个DataRow用select count(*) where TriggerName=xxx and ID<>yyy 查询是否已经存在, --------------------编程问答--------------------
foreach (DataRow dr in m_dtTrigger.Rows)
{
string ssql="select count(*) from m_dtTrigger where TriggerName="+dr["TriggerName"];
}
我还没更新数据库。我只想查我datagridview绑定的表m_dtTrigger是否重复,然后再更新数据库,这样的话,应该怎么查表啊,sql语句不得用到链接数据库什么什么的。。。。???? --------------------编程问答-------------------- 比较简单的方法是,设置主键,主键设置在TriggerName 列上即可。 --------------------编程问答--------------------
主键有,是自增的(不能改动数据库) --------------------编程问答-------------------- 数据库中可以增加唯一索引,你程序中的DataTable可以将主键改在TriggerName列上,又不会影响真实库的主键。 --------------------编程问答--------------------
设好主键,然后接下来怎么判断? --------------------编程问答-------------------- 无需判断,遇到重复的他录入就录不进去,直接在录入时就会报错的,然后保存数据库会自动验证索引重复项,唯一索引一旦遇到重复,就保存不进数据库(可能DataTable未加载全部数据库中的数据,无法在DataTable完成全部验证),如果不报错,把不重复的保存进去,那就只能手动修改保存代码了。 --------------------编程问答--------------------
您能帮我看看我这个是怎么回事吗?5555555
http://topic.csdn.net/u/20110809/17/94403f90-5fff-4458-8f23-4d8b7df717cc.html --------------------编程问答-------------------- 如果你按照我说的方法设置主键,你保存的时候所加的判断都不需要,直接去掉就不会有那错误了。关于错误原因那个帖子里给你分析。
补充:.NET技术 , C#