日期:2014-05-18  浏览次数:20615 次

关于DATASET写数据到数据库问题
ataTable dt = dataSet2.Tables[0];
DataColumn dc = dt.Columns[0];

DataRow dr = dt.NewRow();
dr["cp_dep"] = 1;  
dr["cp_no"] = "000008";
dr["cp_type"] = "0";
dr["cp_name"] = "Orange";
dr["cp_price"] = 1.23;
dt.Rows.Add(dr);
this.odbcDataAdapter1.Update(dataSet2);  

上面的代码能把数据写到dataSet,但还没能够写到数据库里,差了什么呢?

能马上解决的另外送分

------解决方案--------------------
ataTable dt = dataSet2.Tables[0]; 
#region 设置数据表dt的主键集
DataColumn[] priKeys=new DataColumn[2];
priKeys[0]=dt.Columns[0];
priKeys[1]=dt.Columns[1];
#endregion 
DataColumn dc = dt.Columns[0]; 

DataRow dr = dt.NewRow(); 
dr["cp_dep"] = 1;
dr["cp_no"] = "000008"; 
dr["cp_type"] = "0"; 
dr["cp_name"] = "Orange"; 
dr["cp_price"] = 1.23; 
dt.Rows.Add(dr); 

#region 为odbcDataAdapter1生成更新语句(这里用的是SQL数据库)
SqlCommandBuilder cb=new SqlCommandBuilder(odbcDataAdapter1);
#endregion


this.odbcDataAdapter1.Update(dataSet2);
------解决方案--------------------
或者你在使用odbcDataAdapter1.Fill(dt)前设置好更新语句与参数
SqlDataAdapter a=new SqlDataAdapter();
a.UpdateCommand.CommandText="......";
a.UpdateCommand.Parameters.Add(....);
具体的用法查看msdn
------解决方案--------------------
兄弟 你光这样是不行的呀 你必须要向sqlDataAdapter指定你的操作是何种操作
+上这2句就可以了

SqlDataAdapter da=new SqlDataAdapter();
da.InsertCommand=new SqlCommand(往数据库里插入的语句,你的数据库连接对象);
如果是更新或者删除 只要把 InsertCommand换成UpdataCommand DeleteCommand 再把后面的数据库执行语句换1下即可