CREATE PROCEDURE testupdateproc?? AS
declare @id int
declare @trandate datetime
declare @tranlimit int
update test set trandate=@trandate, tranlimit=@tranlimit where test.id=@id
GO
存儲過程語句如上,檢查語法是沒有問題的,但是在程序中執行時卻不行。程序如下:
????????????Class1 c= new Class1();
????????????System.Data.SqlClient.SqlParameter[] para = new System.Data.SqlClient.SqlParameter[3];
??????????? para[0] = new System.Data.SqlClient.SqlParameter("@id",this.textBox3.Text);
???????????? if (this.textBox1.Text != "")
??????????????? para[1] = new System.Data.SqlClient.SqlParameter("@trandate", this.textBox1.Text);
??????????? else
??????????????? para[1] = new System.Data.SqlClient.SqlParameter("@trandate", DBNull.Value);
??????????? if (this.textBox2.Text != "")
??????????????? para[2] = new System.Data.SqlClient.SqlParameter("@tranlimit", this.textBox2.Text);
??????????? else
??????????????? para[2] = new System.Data.SqlClient.SqlParameter("@tranlimit", DBNull.Value);
??????????? //c.DataInsert();
??????????? if (c.DataUpdate())
??????????????? MessageBox.Show("OK");
??????????? else
??????????????? MessageBox.Show("False");
DataUpdae方法如下:
?????????public bool DataUpdate()
??????? {
??????????? string strConn = "Server=.;Initial Catalog=test;User Id=sa;Password=123";
??????????? SqlConnection sqlcon = new SqlConnection(strConn);
??????????? sqlcon.Open();
??????????? SqlCommand sqlcom = new SqlCommand();
??????????? sqlcom.Connection = sqlcon;
??????????? sqlcom.CommandType = CommandType.StoredProcedure;
??????????? sqlcom.CommandText = "testupdateproc";
??????????? int i = sqlcom.ExecuteNonQuery();
??????????? sqlcon.Close();
??????????? bool flag = false;
??????????? if (i > 0)
??????????????? flag = true;
??????????? else
??????????????? flag = false;
??????????? return flag;
??????? }
程序執行返回的是false ,數據庫中數據也沒有改變,大家看看是怎么回事?
轉載于:https://www.cnblogs.com/shunliy/archive/2008/04/03/1136049.html