数据库中的表是不可以有主键的,这是数据本身的限制
但查询出来后的表是可以设置主键的:
如:
原表:
C1 C2 C3
A AA AB
A BA BB
B AA AB
B BA BB查询C1列只为A的记录(假设为 A表)C2 C3
AA AB
BA BBC2列可以保证不存在重复记录,从而可以设置主键将A表与dataGridView绑定,如何采用adapter.Update()更新?
或者用其他效率比较高的方法原贴:http://topic.csdn.net/u/20090422/15/36acd1c0-dc7b-4aa1-84c5-53f964d524df.html
但查询出来后的表是可以设置主键的:
如:
原表:
C1 C2 C3
A AA AB
A BA BB
B AA AB
B BA BB查询C1列只为A的记录(假设为 A表)C2 C3
AA AB
BA BBC2列可以保证不存在重复记录,从而可以设置主键将A表与dataGridView绑定,如何采用adapter.Update()更新?
或者用其他效率比较高的方法原贴:http://topic.csdn.net/u/20090422/15/36acd1c0-dc7b-4aa1-84c5-53f964d524df.html
public class Module
{
public string C2{set;get;}
public string C3{set;get;}
}
1.获取记录 List<Module> 并绑定到datagridview
2.然后在根据datagridview的变化来更改List<Module>
3.删除C1=a的记录然后在根据List<Module>插入数据;
foreach( Module m in List<Module>)
{
string sql="insert a(c1,c2,c3)values(a,m.c2,m.c3)"
}
可能效率会低一点,单你没有主键怎么做效率也肯定高不了
那我还不如直接循环dataGridView或查询出来的表呢
就不需要用实体类了
主要是我觉得循环的效率太低了
然后要把SelectCommand得到的DateSet修改够传会来给SqlDataAdapter,再Update()方法;
或者你先定义好SelectCommand,然后用Build功能自动生成UpdateCommand、DeleteCommand方法;
说来说去,必须定义好了SqlDataAdapter的SelectCommand、UpdateCommand、DeleteCommand,才可以获取数据集(ds)并修改其中的数据后,采用adapter.Update(ds)
暂时没例子,学会baidu和google吧
用多了delphi的人,就比较喜欢这样的方法。。个人不建议这样用。。
adapter.InsertComamnd=...