一个有关Update类型的存储过程的问题
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 ,数据库中数据也没有改变,大家看看是怎么回事?
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 ,数据库中数据也没有改变,大家看看是怎么回事?