其他信息: 必须声明变量 '@sno'。 请问什么原因 ?谢谢
OleDbConnection con = new OleDbConnection( "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=DM ");
string sql = "insert into stu ( stu_sno,stu_sname) values( @sno,@sname ) ";
//string sql = "delete from stu ";
OleDbCommand com = new OleDbCommand( sql, con );
com.Parameters.Add( "@sno ", SqlDbType.Int);
com.Parameters[ "@sno "].Value = 12;// System.Convert.ToInt32(this.textBox1.Text);
com.Parameters.Add( "@sname ", SqlDbType.NVarChar);
com.Parameters.AddWithValue( "@sname ", this.textBox2.Text);
com.Parameters[ "@sname "].Value = this.textBox2.Text;
OleDbDataAdapter ada = new OleDbDataAdapter();
ds = new DataSet();
//ada.SelectCommand.CommandText = "select * from stu ";
con.Open();
com.ExecuteNonQuery();
ada.Fill(ds, "studentinfo ");
con.Close();
执行到 com.ExecuteNonQuery();
就发生异常
未处理的“
System.Data.OleDb.OleDbException”类型的异常出现在 System.Data.dll 中。
其他信息: 必须声明变量 '@sno '。
请问什么原因 ?谢谢
------解决方案--------------------你用的是OleDb的方式...
代码要这样改
string sql = "insert into stu (stu_sno,stu_sname) values(?,?) ";
OleDbCommand com = new OleDbCommand(sql, con);
com.Parameters.Add( "? ", SqlDbType.Int).Value = 11;
com.Parameters.Add( "? ", SqlDbType.NVarChar).Value = "abc ";
con.Open();
com.ExecuteNonQuery();
con.Close();