关于asp.net调用存储过程写数据库的问题

来源:百度知道 编辑:UC知道 时间:2024/05/01 06:20:02
调用存储过程代码如下(参考某参考书编写)

//连接本地计算机的QYZXK数据库
SqlConnection cn=new SqlConnection(strconn);
cn.Open();

//利用Command对象调用存储过程
SqlCommand cm=new SqlCommand ("useradd",cn);
//将命令类型转为存储类型
cm.CommandType=CommandType.StoredProcedure;
//添加并给参数赋值
cm.Parameters.Add("@uname",SqlDbType.VarChar,50);
cm.Parameters.Add("@upower",SqlDbType.Int,4);
cm.Parameters.Add("@udepartment",SqlDbType.VarChar,50);
cm.Parameters.Add("@ucode",SqlDbType.VarChar,7);
cm.Parameters["@uname"].Value=tbx_uname.Text.ToString();
cm.Parameters["@upower"].Value=ddl_upower.SelectedItem.Value;
cm.Parameters["@udepartment"].Value=tbx_udepartment.Text.ToString();
cm.Parameters ["@ucode"].Value=tbx_ucode.Text.ToString();
cm.ExecuteNonQuery();
//关闭连接
cn.Close();

其中useradd为编写好的存储过程,该段程序编译通过后,执行时只能将字符串的第一个字母存入数据库,请高手指教是何原因???

出现这种情况可能是变量的长度设置,你在代码里已经有设置,就检查一下你的存储过程的变量定义是否设置长度 如 @uname VarChar (50)

在不成就可能是你表中定义的问题