-1

我有一个带有 3 个变量的按钮的基本 UI。

在此处输入图像描述

单击Update Profile Class按钮后,将执行以下操作:

private void buttonUpdateProfileClass_Click(object sender, EventArgs e)
{
    int ID = Convert.ToInt32(recordID.Text);
    int oldPC = Convert.ToInt32(oldProfileClass.Text);
    int NewPC = Convert.ToInt32(newProfileClass.Text);


    string connstr = @"Data Source=(local)\MydbName ;Persist Security Info=False;";
    SqlConnection conn = new SqlConnection(connstr);
    conn.Open();
    string query;
    query = "exec updateclass 'ID','oldPC','NewPC'";

    SqlCommand cmd = new SqlCommand(query, conn);   

    cmd.Dispose();
    conn.Close();
    conn.Dispose();
    MessageBox.Show("Profile Class updated");

}

我有一个包含以下 SQL 的存储过程(这在我已经在 SSMS 中测试过)

ALTER PROCEDURE [dbo].[updateclass]
   @ID int,
   @NEWCLASS int,
   @OLDCLASS int    
    AS 
    SET NOCOUNT ON;
    update dbo.TEST_TABLE
    set CLASS = @NEWCLASS
    where ID = @ID AND CLASS = @OLDCLASS

我想要的是让用户输入他们关心的 ID,说明旧的概要文件类,并说明新的概要文件类。这应该然后运行 ​​proc 并更新表,但它不工作。我对存储过程和 C# 相当陌生,因此将不胜感激一些建议。

4

1 回答 1

1
private void buttonUpdateProfileClass_Click(object sender, EventArgs e) 
{
    int ID = Convert.ToInt32(recordID.Text);
    int oldPC = Convert.ToInt32(oldProfileClass.Text);
    int NewPC = Convert.ToInt32(newProfileClass.Text);


    string connstr = @"Initial Catalog=myDB;Data Source=localhost;Integrated Security=SSPI;";
    SqlConnection conn = new SqlConnection(connstr);
    conn.Open();

    var cmd= new SqlCommand("dbo.updateclass", conn);
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@ID", ID);
    cmd.Parameters.AddWithValue("@NEWCLASS", NewPC);
    cmd.Parameters.AddWithValue("@OLDCLASS", oldPC); 

    cmd.ExecuteNonQuery();

    cmd.Dispose();
    conn.Close();
    conn.Dispose();
    MessageBox.Show("Profile Class updated");
}
于 2013-06-17T15:46:07.563 回答