ASP.NET C#存储过程的用法

来源:百度知道 编辑:UC知道 时间:2024/05/31 07:15:05
我定义了这几个参数: int @xs_id = Convert.ToInt32(TextBox1.Text);
string @xs_name = TextBox2.Text;
int @xs_age = Convert.ToInt32(TextBox3.Text);
int @xs_sex = Convert.ToInt32(RadioButtonList1.SelectedValue);
string @xs_major = TextBox5.Text;
string @xs_class = TextBox6.Text;
string @xs_tel = TextBox7.Text;

存储过程:REATE PROCEDURE insertxs_info
@xs_id int,
@xs_name nvarchar(50),
@xs_age int,
@xs_sex int,
@xs_major nvarchar(50),
@xs_class nvarchar(50),
@xs_tel bigint

as

insert into xs_info values(@xs_id,@xs_name,@xs_age,@xs_sex,@xs_major,@xs_class,@xs_tel)
GO

完整代码: SqlConnection cn = new SqlConnection(consql.Class1.connstr);
SqlCommand cm = new SqlCommand();
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "insertxs_info";
cm.Connect

你为参数赋值的方法错了。。。。你不能直接int @xs_id = Convert.ToInt32(TextBox1.Text)这样为参数赋值啊!
在你:cn.Open(); 后面加
cm.Parameters.Add(new SqlParameter("@xs_id",Convert.ToInt32(TextBox1.Text)));这才是正确方法,你的其他几个参数赋值方法同上。。。。

SqlConnection cn = new SqlConnection(consql.Class1.connstr);
SqlCommand cm = new SqlCommand();
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "insertxs_info";
SqlParameter[] pra = new SqlParameter[] {
new SqlParameter("@xs_id",SqlDbType.Int,5,"你要加的参数,也就是TEXTBOX中的参数") ,
new SqlParameter("@xs_Name",SqlDbType.Int,5,"") ,

};
cm.Parameters.AddRange(pra);

给你我写的一段代码:
foreach (SqlParameter sp in values) {
sp.Direction = ParameterDirection.Input;
comm.Parameters.Add(sp);
}
//values is SqlParameter[]
//comm is SqlCommand