0

別のストアド プロシージャの問題に戻って、ワンクリックで送信してから 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 = useridで、DropDownList1.SelectedValue = course

愚かなことに、これからはすべてのオブジェクトを特定の用途に合わせて名前を変更します。それが今日私が学んだ教訓です。私を助けてくれてありがとう。

于 2013-09-05T19:57:13.513 に答える