繁体   English   中英

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

[英]How do I insert values from many textboxes into my database with minimal code?

请您多多包涵 我需要将许多文本框和组合框中的值插入数据库。 现在,如果任何文本框或组合框为EMPTY,我希望跳过该文本框,即,应保持数据库中的上一个值(如果有)不受影响。 例如更新个人资料。 如果你能来救我,我会很高兴。

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

谢谢您的期待。

编辑:例如,我想要一种情况,如果用户尝试输入新记录但将某些字段留空,我将用他/她输入的值替换数据库中已有的内容。 但是,如果一个字段为空,则我希望不更改数据库中已有的内容,选择不将其替换为空值。 谢谢。

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

我会将一个空值传递给db并使用sql来像这样:

这是用于Microsoft SQL Server的Transact SQL的示例,该示例使用isnull函数,该函数检查第一个参数是否为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;

我认为首选方法是将数据库中的现有值加载到文本框中,然后在更新时将其保存回数据库中,以便用户可以根据需要清空该字段。 这将简化您的逻辑,并与当前实践更加一致。

像这样的事情呢:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM