【发布时间】:2023-04-03 11:54:01
【问题描述】:
我想通过 C# 在 Azure SQL-Server 上运行我的存储过程,但它不起作用,我不知道如何找出原因。存储过程有两个输入参数,并基于这些将信息插入到表中。所以我可以在表格中看到是否有新条目(SP 工作与否)。
在 SQL-Server 中使用我的 SP 作为
exec Commentary.Add_Information @ID = 34926, @year = '2020'
工作得很好。但是从 c# 执行它不会在表中创建一个条目
public void CreateBasicInformation()
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "myServer.database.windows.net";
builder.UserID = "admin";
builder.Password = "myPass";
builder.InitialCatalog = "myDB";
try
{
SqlConnection cn = new SqlConnection(builder.ConnectionString);
cn.Open();
SqlCommand cmd = new SqlCommand("Add_Information", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", "34926");
cmd.Parameters.AddWithValue("@year", "2020");
cn.Close();
}
catch (SqlException sqlEx)
{
Console.WriteLine(sqlEx.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
我已经尝试捕捉错误但没有。最后我得到的只是
程序“[9480] test_SP.exe”已退出,代码为 0 (0x0)。
代码中是否有错误,或者有什么方法可以找出为什么 C# 和 SP 不能一起工作?
【问题讨论】:
-
您的
ExecuteNonQuery()、ExecuteReader()等命令在哪里? -
旁注,你也应该在这里使用
using。 -
看来您在执行代码中传递了一个数字,并在此处传递了一个字符串 cmd.Parameters.AddWithValue("@ID", "34926");
标签: c# sql-server stored-procedures ado.net