0

再次回到另一个存储过程问题,我想进行 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);

在上面的某个地方,我的班级将在这段代码之后的某个地方

4

1 回答 1

0

您在代码中添加的参数类型与在存储过程中添加的参数类型不同。

终于明白了,问题来了:

cs.assignofclass(TextBox1.Text, DropDownList1.SelectedValue);

public void assignofclass(string id, string course)

起初,代码是

public void assignofclass(string course, string id)

其中Textbox1.Text = useridDropDownList1.SelectedValue = course

愚蠢的我,从现在开始,我要将所有对象重命名为它们的特定用途。这就是我今天学到的教训。谢谢大家帮助我。

于 2013-09-05T19:57:13.513 回答