【发布时间】:2015-04-07 20:50:09
【问题描述】:
我正在尝试从 C# windows 窗体应用程序调用存储过程。它被执行但在数据库中没有发生任何事情,即没有记录被添加到表中。 这是我的 C# 代码:
private void buttonAddData_Click(object sender, EventArgs e)
{
string actionTaken = "Added";
string changeDescription = "Added new Code";
string updatedBy = "ICherry";
string currentStatus = "In development";
SqlConnection conDatabase = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\ConfigData.mdf;Integrated Security=True;");
try
{
SqlCommand cmd = conDatabase.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "spLogConfigChanges";
cmd.Parameters.AddWithValue("@ActionTaken",actionTaken);
cmd.Parameters.AddWithValue("@ChangeDescription", changeDescription);
cmd.Parameters.AddWithValue("@UpdatedBy", updatedBy);
cmd.Parameters.AddWithValue("@CurrentStatus", currentStatus);
conDatabase.Open();
MessageBox.Show("Connection opened");
cmd.ExecuteNonQuery();
MessageBox.Show("Command Executed");
conDatabase.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我的 SP 在查询分析器中运行时没有错误,我可以看到正在创建的记录。
【问题讨论】:
-
@paqogomez- 是的,它在 SSMS 中运行良好。
-
创建命令前需要打开连接吗?我正在看一堆例子来说明这一点。此外,如果您将 SqlConnection 包装在
using语句中,则不必担心调用Close(),或者如果抛出异常则不会调用Close()。 -
使用查询分析器时参数是一样的吗?
-
cmd.ExecuteNonQuery();返回什么。它是否返回 -1 -
@Bond- 是的,当我在查询分析器中运行 sp 时,参数是相同的
标签: c# winforms stored-procedures