使用c#sign_up

时间:2014-01-06 19:25:34

标签: c# asp.net database visual-studio

嘿,我创建了一个sign_up方法,使用proc'new_student'插入我的数据库'newSchool',但每当我在浏览器中尝试它时,在cmd.ExecuteNonQuery();

给我一​​个SqlException错误

这是代码:

protected void sign_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection("Data Source=MAX-PC\\SQLEXPRESS;Initial Catalog=newSchool;Integrated Security=True");
    SqlCommand cmd = new SqlCommand("new_student", conn);
    cmd.CommandText = "EXEC new_student @user , @name , @pass , @date , SELECT S.ID FROM Schools S where S.name = @school";
    cmd.Parameters.AddWithValue("@user", suser.Text);
    cmd.Parameters.AddWithValue("@name", sname.Text);
    cmd.Parameters.AddWithValue("@pass", spass.Text);
    cmd.Parameters.AddWithValue("@date", sdate.Text);
    cmd.Parameters.AddWithValue("@school", sschool.SelectedValue);
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    Response.Redirect("localhost:17009/Welcome%20page.aspx");
}

这是错误:enter image description here

2 个答案:

答案 0 :(得分:2)

首先,您需要在设置命令文本之前设置commandtype = CommandType.StoredProcedure。然后在commandtext中仅提供程序的名称。如需进一步澄清,请访问以下链接:

http://msdn.microsoft.com/en-us/library/yy6y35y8(v=vs.110).aspx

答案 1 :(得分:0)

cmd.CommandText = "EXEC new_student @user , @name , @pass , @date , SELECT S.ID FROM Schools S where S.name = @school";

这不是有效的SQL。如屏幕截图所示,关键字“SELECT”附近的语法不正确。不正确的语法以@date后面的逗号开头。您不能将不带引号的SELECT语句作为参数传递给存储过程。