2011-09-09 24 views
0

請親愛的抱着我。我需要將很多文本框和組合框中的值插入到數據庫中。現在,如果任何文本框或組合框都是EMPTY,我希望它跳過,即DB中的前一個值(如果有的話)應該保持不變。就像更新配置文件一樣。如果你能來救我,我會很高興。如何用最少的代碼將多個文本框中的值插入到我的數據庫中?

我不想寫無盡的 cmd.Parameters.AddWithValues(...); ...

謝謝你的期待。

編輯: 我想要一個情況,例如,如果用戶試圖輸入新記錄,但留下一些字段爲空,我將用他/她輸入的值替換數據庫中已有的數據。但是如果一個字段是空的,我想離開已經在數據庫中的東西,不要用空值替換它。謝謝。

我在VS2010中使用C#,數據庫是MSSQL。

+0

如果事情是空的,你不希望有任何插入或? –

+0

您正在使用哪種數據庫技術 –

+0

是的。例如,如果用戶嘗試輸入新記錄但留下了一些空白字段,我只想用他/她輸入的值替換數據庫中已有的數據。但是如果一個字段是空的,我想離開已經在數據庫中的東西,不要用空值替換它。謝謝。 – olatunjee

回答

0

我會傳爲空值空到數據庫並使用SQL這樣的:

下面是處理SQL Microsoft SQL Server的一個例子,使用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; 
+0

在插入操作之前,我已經在文本框字段中檢查了無效性,但是我怎樣才能通過幾行代碼來執行「批量」插入操作。謝謝。 – olatunjee

+0

文本框中的值是否存儲在同一列中? –

0

我認爲首選的方法是從數據庫加載現有的值在文本框中,然後保存它們放回在更新數據庫,所以用戶可以根據需要填空字段。這將簡化您的邏輯並與當前實踐更加一致。

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 
        } 
       } 
相關問題