C# C程序不执行存储过程
我想从C#在Azure SQL Server上运行我的存储过程,但它不起作用,我不知道如何找出原因。存储过程有两个输入参数,并基于这些参数将信息插入表中。因此,我可以在表中查看是否有新条目(SP是否工作) 将SQL Server中的我的SP用作C# C程序不执行存储过程,c#,sql-server,stored-procedures,ado.net,C#,Sql Server,Stored Procedures,Ado.net,我想从C#在Azure SQL Server上运行我的存储过程,但它不起作用,我不知道如何找出原因。存储过程有两个输入参数,并基于这些参数将信息插入表中。因此,我可以在表中查看是否有新条目(SP是否工作) 将SQL Server中的我的SP用作 exec Commentary.Add_Information @ID = 34926, @year = '2020' 效果绝对不错。但是从c#执行它不会在表中创建条目 public void CreateBasicInformation() {
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不在一起工作的原因?如果您没有实际执行命令,则需要添加以下行: 还强烈建议使用以下工具: using语句的目的是提供一种更简单的方法 指定程序何时需要非托管资源,以及 当它不再需要的时候
您没有执行您的命令: 试一试
您的
ExecuteNonQuery()
,ExecuteReader()
,etc命令在哪里?请注意,您应该也在这里使用,这里使用。看起来您在exec代码中传递了一个数字,在这里传递了一个字符串cmd.Parameters.AddWithValue(@ID”,“34926”);想你了一会儿:)使用上的好地方,因为接近不足以正确处理对象。这里有一个很好的解释:就是这样。使用不支持捕获异常,这就是我使用它的原因。但我读了更多关于它的内容,并改回使用它。谢谢!
cmd.ExecuteNonQuery();
cn.Close();
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");
// Execute and get rows affected count.
var rowsAffected = cmd.ExecuteNonQuery();
cn.Close();
}
catch (SqlException sqlEx)
{
Console.WriteLine(sqlEx.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}