我正在尝试通过存储过程将空文本框值插入数据库。但是我不知道如何通过存储过程传递空值,请帮帮我。我的课是
public Void empqualadd(string id, string name, string qual1)
{
SqlCommand cmd = new SqlCommand("InsertQual");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@MachID", SqlDbType.Int).Value = id;
cmd.Parameters.Add("@EmpCode", SqlDbType.VarChar).Value = name;
cmd.Parameters.Add("@Qualification1", SqlDbType.VarChar).Value = qual1;
conn.nonquery(cmd);
}
我的按钮点击是,
protected void Button1_Click(object sender, EventArgs e)
{
mas.empqualadd(ddis.SelectedItem.Text,
txtfname.Text,ddqual.SelectedItem.Text);
}
我也有连接
public Connection()
{
conn = new SqlConnection(@"server=SIGNET- SOFTWARE\SA;database=manjilas;Integrated security=true");
cmd = null;
}
public void nonquery(SqlCommand cmd)//for insert,delete,update
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Open();
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
}
如果文本框不为空,则可以很好地插入数据。我应该在类中进行哪些更改以传递空值?请帮助我。谢谢。
试试这个
cmd.Parameters.Add("@MachID", SqlDbType.Int).Value = string.IsNullOrEmpty(id) ? (object)DbNull.Value : id;
另外,当列数据类型为int时,为什么还要传递字符串值?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句