使用 SQL Server 2008、WinForms C# .NET 4.5、Visual Studio 2012。
我有一个查询,该查询当前使用来自GridView
.
下面是调用存储过程的代码:
public void UpdateMain(string part, int? pareto)
{
try
{
using (SqlConnection AutoConn = new SqlConnection(conn32))
{
AutoConn.Open();
using (SqlCommand InfoCommand = new SqlCommand())
{
using (SqlDataAdapter infoAdapter = new SqlDataAdapter(InfoCommand))
{
InfoCommand.Connection = AutoConn;
InfoCommand.CommandType = CommandType.StoredProcedure;
InfoCommand.CommandText = "dbo.updateMain";
InfoCommand.Parameters.AddWithValue("@part", part);
InfoCommand.Parameters.AddWithValue("@pareto", pareto);
InfoCommand.CommandTimeout = 180;
InfoCommand.ExecuteNonQuery();
}
}
}
}
catch (Exception e)
{
//MessageBox.Show("Error in connection :: " + e);
}
}
这是SQL:
ALTER PROCEDURE [dbo].[updateMain]
@part varchar(255),
@Pareto int
as
UPDATE dbo.ParetoMain
SET NewPareto = @Pareto
WHERE Part = @part
如您所见,没有什么花哨的。我遇到的问题是Newpareto
不一定要有值,所以我需要它来允许空值。我确保该表允许空值。在我的 C# 代码中,我确保使用可为空的 int,但是当我运行代码时出现错误:
异常:抛出:“过程或函数'updateMain'需要参数'@Pareto',但未提供。” (System.Data.SqlClient.SqlException)
引发了 System.Data.SqlClient.SqlException:“过程或函数 'updateMain' 需要参数 '@Pareto',但未提供。”
那么如何停止此错误并将空值放入表中?