下面的代码能编译过,用DATASET 和 MySqlDataAdapter 操作数据库 , 请问为什么不能插入一个记录到数据库呢
string strconnection=(string)ConfigurationSettings.AppSettings[Global.CfgKeyConnString];
SqlConnection myconnection=new SqlConnection(strconnection);
DataSet ds=new DataSet ();
SqlDataAdapter adapter = new SqlDataAdapter();
string strsql= "select * from jo_parts ";
adapter.SelectCommand = new SqlCommand(strsql , myconnection);
adapter.Fill (ds, "data ");
string isql= "INSERT INTO jo_parts VALUES( 'U526FASX ', 'abc ',3, 'rrrrrrr ',10,23) ";
adapter.InsertCommand =new SqlCommand (isql,myconnection);
adapter.Update (ds, "data ");
------解决方案--------------------因为Adpater插入,修改,删除数据是根据DataRow的状态来确定的光指定insertcommand 是不够的
try
UpDate之前
DataRow dr = ds.Tables[ "data "].NewRow();
dr[...] = 值
ds.Tables[ "data "].Rows.Add(dr)
------解决方案--------------------using(SqlConntion conn=new SqlConnection(connstr))
{
string str= "INSERT INTO jo_parts VALUES( 'U526FASX ', 'abc ',3, 'rrrrrrr ',10,23) ";
SqlCommand cmd=new SqlCommand(str,conn);
try
{
conn.open();
cmd.ExecuteNonQuery();
}
catch
{
}
}
这样就可以了
------解决方案--------------------SqlDataAdapter是自己管理connection的关闭和打开,commond必须自己打开和关闭connection
------解决方案--------------------要么跳开DATASET用INSERT直接对DB操作,或者就是在DATASET中添加DATAROW,然后在UPDATE