读书人

数据库更新的简单有关问题

发布时间: 2011-12-25 23:21:20 作者: rapoo

数据库更新的简单问题?
OleDbDataAdapter custDA = new OleDbDataAdapter( "SELECT 客户ID, 公司名称 FROM 客户 ", nwindConn);

custDA.UpdateCommand = new OleDbCommand( "UPDATE 客户 SET 公司名称 = ? WHERE 客户ID = ? ",nwindConn);

custDA.UpdateCommand.Parameters.Add( "@ConpanyName ", OleDbType.Char, 15).Value = " 旧公司 ";

custDA.UpdateCommand.Parameters.Add( "@CustomerID ", OleDbType.Char, 5, "客户ID ").Value = "ALFKI ";

DataSet custDS = new DataSet();
custDA.Fill(custDS, "客户 ");

custDS.Tables[ "客户 "].Rows[0][ "公司名称 "] = "第一公司 ";
custDS.Tables[ "客户 "].Rows[1][ "公司名称 "] = "第二公司 ";

custDA.Update(custDS, "客户 ");

上面的语句执行后,数据库中的第一行和第二行显示的都是 '旧公司 '。这是为什么啊?

[解决办法]
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter( "CustomerID ", System.Data.OleDb.OleDbType.VarWChar, 5, "CustomerID "));
把你的 "旧公司 "去掉
[解决办法]
try..

OleDbDataAdapter custDA = new OleDbDataAdapter( "SELECT 客户ID, 公司名称 FROM 客户 ", nwindConn);
OleDbCommandBuilder builder=new OleDbCommandBuilder(custDA);

DataSet custDS = new DataSet();
custDA.Fill(custDS, "客户 ");

custDS.Tables[ "客户 "].Rows[0][ "公司名称 "] = "第一公司 ";
custDS.Tables[ "客户 "].Rows[1][ "公司名称 "] = "第二公司 ";

custDA.Update(custDS, "客户 ");

注意这样要求你的数据库中的表要有主键....

[解决办法]
你这样用肯定有问题啊...

你的Adapter的updateCommand与后面对datatable的更改都不对应...


[解决办法]
数据库中要设置主键
另外参数中应加入主键的参数

读书人网 >C#

热点推荐