我有一个基本的UI,带有一个带3个变量的按钮。
单击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#相当新,所以一些建议将非常感激。
答案 0 :(得分: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");
}