gpt4 book ai didi

c# - SQL在C#中的表中允许null

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:22 26 4
gpt4 key购买 nike

使用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',但未提供。”


那么,如何停止该错误并将null放入表中?

最佳答案

使用

InfoCommand.Parameters.AddWithValue("@Pareto", (Object)pareto ?? DBNull.Value);

关于c# - SQL在C#中的表中允许null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16015056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com