gpt4 book ai didi

c# - 如何通过 C# 将 NULL 值传递给存储过程

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

我有多个文本框,我想让用户留一些空而不是给出错误

SqlParameterCollection only accepts non-null SqlParameter type objects.

我使用什么来插入 Data_Access_Layer 类中的数据

public void ExecuteCommand(string Data, SqlParameter[] param)
{
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.CommandText = Data;
sqlcmd.Connection = sqlconnection;


if (param != null)
{

sqlcmd.Parameters.AddRange(param);
}

主窗体代码:

namespace M_Weight_System.Presentation_Layer
{
public partial class Main : Form
{
Bussiness_Layer.Cls_Data dta = new Bussiness_Layer.Cls_Data();
public Main()
{
InitializeComponent();
}

private void bSave_Click(object sender, EventArgs e)
{
try
{
dta.Add_Data(tId.Text, tNumber.Text, tClient.Text, tDriver.Text, Convert.ToInt32(tFirst.Text), Convert.ToInt32(tSecond.Text), Convert.ToInt32(rt2.Text), tDate1.Text,tCity.Text, tType.Text,tDate2.Text);
MessageBox.Show("Success");
bEdit.Enabled = true;
NewToolStripMenuItem.Enabled = true;
PrintToolStripMenuItem.Enabled = false;
}
catch
{
MessageBox.Show("Problem !");
}
}

private void bEdit_Click(object sender, EventArgs e)
{
try
{
dta.Update_Data(tId.Text, tNumber.Text, tClient.Text, tDriver.Text, Convert.ToInt32(tFirst.Text), Convert.ToInt32(tSecond.Text), Convert.ToInt32(rt2.Text), tDate1.Text, tCity.Text, tType.Text, tDate2.Text);
MessageBox.Show("Success");

}
catch
{
MessageBox.Show("Problem !");
}

}
}
}

最佳答案

你可以试试这个 command.Parameters.Add("@param", DBNull.Value); 或者你可以在 proc 中将默认值设置为 NULL 并且你不必显式传递NULL 到 proc。

CREATE PROC ..dbo.Proc ( @param1 int =NULL, @param2 varchar(40) = NULL ...)

此外,如果您必须从您的应用程序发送 NULL,您将使用 DBNull.Value

关于c# - 如何通过 C# 将 NULL 值传递给存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46208647/

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