再次返回另一个存储过程问题,我想进行1次单击提交然后使用ASP.Net进行更新,但似乎对我不起作用..
这是我班级的代码
public void assignofclass(string course, string id)
{
myCon.Open();
SqlCommand saveCmd = new SqlCommand("assignclass", myCon);
saveCmd.CommandType = CommandType.StoredProcedure;
saveCmd.Parameters.Add("@userid", SqlDbType.NChar).Value = id;
saveCmd.Parameters.Add("@course", SqlDbType.NChar).Value = course;
saveCmd.ExecuteNonQuery();
myCon.Close();
}
代码隐藏:
using ClassLibrary1;
Class1 cs = new Class1();
protected void Button1_Click(object sender, EventArgs e)
{
cs.assignofclass(TextBox1.Text, DropDownList1.SelectedValue);
Response.Write("<script> alert('" + TextBox1.Text + DropDownList1.SelectedValue + "')</script>");
//just to make sure the textbox1 and dropdownlist1 is not giving a null value
}
最后,存储过程
ALTER PROCEDURE dbo.assignclass
@userid nchar(10),
@course nchar(10)
AS
Update users Set
course = @course
Where userid = @userid
RETURN
这里似乎有什么问题?我似乎无法更新我的表,顺便说一下这是表
表名:用户
userid nchar(10)
firstname nchar(20)
middlename nchar(20)
lastname nchar(20)
course nchar(10)
usertype nchar(10)
apassword nchar(20)
grade decimal(18, 2)
myCon
声明:
namespace ClassLibrary1
{
public class Class1
{
public static string ConStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=........
SqlConnection myCon = new SqlConnection(ConStr);
那里的某个地方,我的班级将在此代码之后的某个地方
答案 0 :(得分:0)
您在代码中添加的参数类型不同于存储过程中的参数。
最后我明白了,问题在于:
cs.assignofclass(TextBox1.Text, DropDownList1.SelectedValue);
和
public void assignofclass(string id, string course)
起初,代码是
public void assignofclass(string course, string id)
其中Textbox1.Text = userid
和DropDownList1.SelectedValue = course
愚蠢的我,从现在开始,我将把所有物品重新命名为特定用途。这是我今天学到的教训。谢谢大家的帮助。