如何使用最少的代码将许多文本框中的值插入到我的数据库中?

时间:2011-09-09 11:41:54

标签: c# sql

请耐心等待我。我需要将许多文本框和组合框中的值插入到数据库中。现在,如果任何文本框或组合框都是EMPTY,我希望跳过它,即DB中的先前值(如果有的话)应保持不变。比如更新个人资料。如果你能救我,我会很高兴的。

我不想写无穷无尽的    cmd.Parameters.AddWithValues(...);    ...

感谢您的期待。

编辑: 我想要一种情况,例如,如果用户试图输入新记录但是将一些字段留空,我将用他/她输入的值替换DB中已有的字段。但是如果一个字段是空的,我想保留DB中已经存在的东西,选择不用空值替换它。感谢。

我在VS2010中使用C#,数据库是MSSQL。

3 个答案:

答案 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
                  }
              }