最近使用SqlDataAdapter 来进行批量的insert 和 update现在问题是,如果我自己创建了一个相对应的datatable,并且添加了10条数据。
这个时候用的是insert,可是问题是如何判断这10条数据在数据库里面是不是存在的。
总不能根据key一条一条的去搜索,不知道有没有什么思路来解决这个问题。
我原来是一条一条更新的,先update 然后根据返回值的大小来判断是不是进行insert的。这里先谢谢,谢谢,再谢谢了。
这个时候用的是insert,可是问题是如何判断这10条数据在数据库里面是不是存在的。
总不能根据key一条一条的去搜索,不知道有没有什么思路来解决这个问题。
我原来是一条一条更新的,先update 然后根据返回值的大小来判断是不是进行insert的。这里先谢谢,谢谢,再谢谢了。
解决方案 »
- DataSet中做过两个表之间多个字段的建立关系
- 请问如何让调用的matlab程序嵌入显示在网页中??
- c#中如何设置tabcontrol控件选项卡的字体为竖着的?
- 參數還可以這樣寫?
- 怎样动态连结xsd呢?
- 帮忙写个正则,谢谢
- Unity3D C#脚本使用System.Drawing命名空间,发布到Android不能用,安卓程序怎么才能使用Bitmap类等。
- 编译程序的时候出现的问题,求指导。
- 还是那个问题,GridData控件中HyperLink模板取值的问题,急于请大虾们解决,参与有奖
- 升级散分,前几天一个算法的再讨论
- Reflector如何导出程序的源码
- 怎么用正则表达式验证字符串的某个部分是否是数字并且大小在一定范围呢?
比如有没有给个datatable,然后一个sql问,最好返回那条数据在数据库存在。呵呵估计是没有办法了,看来只能一条一条for过去了。
比如说呢?
我10条数据,现在不知道那条数据在数据库里面已经存在了。
最理想的办法自然是一句一个方法就能知道那条数据已经存在了。
如果上面的办法根本不存在的话,就只有for 10次一次一次的根据key去检索。
总部能用IN()把,那样不就全表搜索了。
比如:string constr = "server=localhost\\sqlserver2008;initial catalog=test;uid=sa;pwd=123456;";
SqlConnection conn = new SqlConnection(constr);
//设置select查询命令,SqlCommandBuilder要求至少有select命令
SqlCommand selectCMD = new SqlCommand("select top 0 SNo,SName,SAge from Student", conn);
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(selectCMD);
//上面的语句中使用select 0,不是为了查询出数据,而是要查询出表结构以向DataTable中填充表结构
sda.Fill(dt);
//给DataTable添加10条记录
for(int i=1;i<=10;i++)
dt.Rows.Add(new object[] { i, "aaa"+i, 20+i });
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
//执行更新
sda.Update(dt.GetChanges());
//使DataTable保存更新
dt.AcceptChanges();