c#中的DataSets有一些问题,它表示sdf文件中DB的结构和数据。我正在用 DB 进行一些自动测试,所以我应该在表中添加一些行,执行测试并从表中删除添加的行。
表架构:
Num - ID, autoincrementing, primary key
Name - string
Photo - Image (binary)
我的代码是:
adapter.Fill(set);
row1 = datatable.Rows.Add(null, "Name1", File.ReadAllBytes(@"Images\photo1.jpg"));
row2 = datatable.Rows.Add(null, "Name2", File.ReadAllBytes(@"Images\photo2.jpg"));
adapter.Update(set);
... perfoming test...
adapter.Fill(set);
row1.Delete();
row2.Delete();
adapter.Update(set);
但是添加的行仍在基础中。我试过用
datatable.Rows.Remove(row1);
datatable.Rows.Remove(row2);
但它会导致 no-such-row-exception 因为 row1 和 row2 中的错误“Num”值,这与 DB 中的实际自动增量值不同。
- 添加行时如何获得 Num 的真实值?
- “添加行”->“执行某事”->“删除添加的行”问题是否有更智能的解决方案?
提前致谢。