请耐心等待我。我需要将许多文本框和组合框中的值插入到数据库中。现在,如果任何文本框或组合框都是EMPTY,我希望跳过它,即DB中的先前值(如果有的话)应保持不变。比如更新个人资料。如果你能救我,我会很高兴的。
我不想写无穷无尽的 cmd.Parameters.AddWithValues(...); ...
感谢您的期待。
编辑: 我想要一种情况,例如,如果用户试图输入新记录但是将一些字段留空,我将用他/她输入的值替换DB中已有的字段。但是如果一个字段是空的,我想保留DB中已经存在的东西,选择不用空值替换它。感谢。
我在VS2010中使用C#,数据库是MSSQL。
答案 0 :(得分:0)
我会将空值传递给db并使用sql,如:
以下是使用isnull函数的Transact SQL for Microsoft SQL Server的示例,该示例检查第一个参数是否为null以及是否将列设置为自身(即不更改它)。
update the_table
set
col_x = isnull(@some_value_x, col_x),
col_7 = isnull(@some_value_y, col_y)
.
.
.
您可以使用的C#代码:
string some_value_x = textbox_x.Text.Trim();
if(string.IsNullOrWhitespace(some_value_x))
some_value_x = null;
答案 1 :(得分:0)
我认为首选方法是将数据库中的现有值加载到文本框中,然后在更新时将它们保存回数据库,这样用户可以根据需要删除字段。这将简化您的逻辑,并与当前的实践更加一致。
答案 2 :(得分:0)
这样的事情:
string s;
foreach (Control cc in this.Controls)
{
if (cc is ComboBox || cc is TextBox)
{
if (!string.IsNullOrEmpty(cc.Text))
{
s = cc.Text;
//Do something with the value
}
}