奇怪问题求指导!DataSet里用SQL语句加行可以,但在DataGridView中追加相同新行,更新到数据库提示主键重复!

时间:2022-12-19 09:06:22
数据连接和变量先前定义好的。            
SqlCeCommand scCommand = new SqlCeCommand();
            scCommand.CommandText = "select * from Pro_Info";
            pad = new SqlCeDataAdapter(scCommand.CommandText, conn);
            pad.InsertCommand = scCommand;
            SqlCeCommandBuilder pdb = new SqlCeCommandBuilder(pad);
            pad.Fill(ds, "Pro_Info");

Pro_Info是一张表,0号列int型数字,设为了主键。
DataGridView绑定了这张表,允许在末尾添加新行。
运行后,在表中最后添加新行,主键列是完全不同的数字。加完行后DataGridView并没报错。
但执行到
pad.Update(ds.Tables["Pro_Info"]);
这句时,却提示主键数字有重复,并且是表中第一行那个数。

设断点查看了表Pro_Info中的内容,有新加的行,并且各行的0列数字并不相同。
请教大牛。。。这奇怪的现象是从何而来。。。。。感激不尽。。。

5 个解决方案

#1


还真没遇到过

#2


把第一列删除了第2行肯定也出现同样问题,你是不是程序哪有问题?看上去像是执行插入语语句一样。
pad.InsertCommand = scCommand;看下是不是这个的问题。

#3


要insert就用一个,你两种算法都用,估计冲突

#4


肯定是全部insert了才会冲突

#5


引用 2 楼 wildbanana 的回复:
把第一列删除了第2行肯定也出现同样问题,你是不是程序哪有问题?看上去像是执行插入语语句一样。
pad.InsertCommand = scCommand;看下是不是这个的问题。

非常感谢!还真是这里~删掉就对了~~
这个小问题调了一整天。。都找不到类似的错误。。

#1


还真没遇到过

#2


把第一列删除了第2行肯定也出现同样问题,你是不是程序哪有问题?看上去像是执行插入语语句一样。
pad.InsertCommand = scCommand;看下是不是这个的问题。

#3


要insert就用一个,你两种算法都用,估计冲突

#4


肯定是全部insert了才会冲突

#5


引用 2 楼 wildbanana 的回复:
把第一列删除了第2行肯定也出现同样问题,你是不是程序哪有问题?看上去像是执行插入语语句一样。
pad.InsertCommand = scCommand;看下是不是这个的问题。

非常感谢!还真是这里~删掉就对了~~
这个小问题调了一整天。。都找不到类似的错误。。