数据库更新的简单问题?
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的更改都不对应...
------解决方案--------------------数据库中要设置主键
另外参数中应加入主键的参数