C# 使用数据集和表适配器的更新未在SQLCe 3.5上生效
我们使用VS2010数据连接设计向导来定义到只有一个表(database=“UserMetrics”table=“User”)的SQLCe数据库的连接。尽管我们可能会尝试,但更新似乎不起作用,我已经浏览了SO和MSDN上的帖子,但看不到明显的错误…C# 使用数据集和表适配器的更新未在SQLCe 3.5上生效,c#,dataset,sql-server-ce,C#,Dataset,Sql Server Ce,我们使用VS2010数据连接设计向导来定义到只有一个表(database=“UserMetrics”table=“User”)的SQLCe数据库的连接。尽管我们可能会尝试,但更新似乎不起作用,我已经浏览了SO和MSDN上的帖子,但看不到明显的错误… //initialize UserMetricsDataSet umDataSet = new UserMetricsDataSet( ); UserMetricsDataSetTableAdapte
//initialize
UserMetricsDataSet umDataSet = new UserMetricsDataSet( );
UserMetricsDataSetTableAdapters.UserTableAdapter umTableAdapter = new UserMetricsDataSetTableAdapters.UserTableAdapter( );
// check that test data is there and count is correct
umTableAdapter.Fill( umDataSet.User );
UserMetricsDataSet.UserRow umRow = (UserMetricsDataSet.UserRow)umds.User.Rows[0];
int count = umDataSet.User.Rows.Count; //yep its there
//lets add some rows
for (int i = 0; i < 100; i++)
umDataSet.User.AddUserRow( "smith", (float)54, (float)3, 1);
umds.User.AcceptChanges( );
//umTableAdapter.Update(umDataSet.User); //tried this also ... no change...
// there are now 101 rows !!
int count = umDataSet.User.Rows.Count; //yep its there
umRow = (UserMetricsDataSet.UserRow)umds.User.Rows[101];
//lets double check
umTableAdapter.Fill( umDataSet.User );
int count = umds.UserMetris.Rows.Count; //huh!!! count==1 ???
//初始化
UserMetricsDataSet umDataSet=新的UserMetricsDataSet();
UserMetricsDataSetTableAdapters.UserTableAdapter umTableAdapter=新的UserMetricsDataSetTableAdapters.UserTableAdapter();
//检查测试数据是否存在,计数是否正确
umTableAdapter.Fill(umDataSet.User);
UserMetricsDataSet.UserRow umRow=(UserMetricsDataSet.UserRow)umds.User.Rows[0];
int count=umDataSet.User.Rows.count//是的,就在那里
//让我们添加一些行
对于(int i=0;i<100;i++)
umDataSet.User.AddUserRow(“smith”,(float)54,(float)3,1);
umds.User.AcceptChanges();
//umTableAdapter.Update(umDataSet.User)//我也试过这个。。。没有变化。。。
//现在有101排!!
int count=umDataSet.User.Rows.count//是的,就在那里
umRow=(UserMetricsDataSet.UserRow)umds.User.Rows[101];
//让我们再检查一下
umTableAdapter.Fill(umDataSet.User);
int count=umds.UserMetris.Rows.count//呵呵!!!计数==1???
我假设umDataSet
与umds
是一样的
那怎么办
UserMetricsDataSet.UserRow umRow = umDataSet.User.NewRow();
umRow["Name"] = "smith";
// etc
umDataSet.User.ImportRow(umRow);
umDataSet.User.AcceptChanges();
或者颠倒顺序呢?TableAdapter.Update()
方法根据DataTable中的更改将更新发送回数据库。如果首先接受更改,则会在每个DataTable行上重置RowState
,因此找不到要发送回数据库的更新
发件人:
为了将修改后的数据发送到数据库,需要调用TableAdapter的更新方法。适配器的更新方法将更新单个数据表,并根据表中每个数据行的行状态执行正确的命令(INSERT、Update或DELETE)
我假设
umDataSet
与umds
是一样的
那怎么办
UserMetricsDataSet.UserRow umRow = umDataSet.User.NewRow();
umRow["Name"] = "smith";
// etc
umDataSet.User.ImportRow(umRow);
umDataSet.User.AcceptChanges();
或者颠倒顺序呢?TableAdapter.Update()
方法根据DataTable中的更改将更新发送回数据库。如果首先接受更改,则会在每个DataTable行上重置RowState
,因此找不到要发送回数据库的更新
发件人:
为了将修改后的数据发送到数据库,需要调用TableAdapter的更新方法。适配器的更新方法将更新单个数据表,并根据表中每个数据行的行状态执行正确的命令(INSERT、Update或DELETE)
谢谢你对拼写的理解。不过你的“ImportRow”建议没有效果。@Gio-新的例子怎么样?对不起,老板进来了,需要更新。谢谢-就是这样!谢谢你对拼写的理解。不过你的“ImportRow”建议没有效果。@Gio-新的例子怎么样?对不起,老板进来了,需要更新。谢谢-就是这样!