我有多个文本框,我希望允许用户将某些文本框保留为空,而不是显示错误。
SqlParameterCollection仅接受非空的SqlParameter类型对象。
我用于插入数据的是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 !");
}
}
}
}
string.Empty
、null
和DbNull.Value
是三个不同的值。如果您的文本框为空,可能需要将DbNull.Value
添加到param
中。请注意,翻译时需保持原文意思不变,且不添加解释。 - Dour High ArchSqlCommand
包装在using
或try/finally
块中,以确保其正确释放。 - Dai