2011-06-23 35 views
0

我有一個關於我的ASP.net項目的小問題。我在我的ASP.net項目中有register.aspxlogin.aspxdefault.aspx頁面。在ASP.net中寫入多個數據到數據庫

順便說一句,將這些用戶想要的信息輸入到register.aspx頁面的文本框中,點擊按鈕後,信息就寫入數據庫。總之,我的項目就是這樣。我的問題是 - 我會用checkboxlist給出多項選擇,然後我會在數據庫內的表格中寫入在複選框列表中選擇的項目,並且我想通過在數據庫中的每個項目之間插入一個逗號來寫入。

我試了下面的代碼。我沒有收到錯誤。但是它在表格內部的字段(我使用了一個名爲hobby的列)時將成爲NULL。它是兩次記錄相同的記錄。

String selectedItem = string.Empty; 
foreach (ListItem item in CheckBoxList1.Items) 
{ 
    if (item.Selected) 
    { 
     string.Format(selectedItem, ",", item.Text); 
    } 
} 

if (selectedItem != string.Empty) 
{ 
    selectedItem = selectedItem.Substring(1); 
} 

或者, 當我嘗試下面運行的代碼,它只是需要選擇的第一個。

所有的
for(int i=0;i<CheckBoxList1.Items.Count;i++) 
    { 
     if (CheckBoxList1.Items[i].Selected == true) 
     { 
       cmd.Parameters.Add("@Hobies", SqlDbType.VarChar).Value = 
      CheckBoxList1.Items[i].Text.ToString(); 
       cmd.ExecuteNonQuery(); 
     } 
    } 
+0

首先,數據庫規範化閱讀起來。通過輸入用逗號分隔的多個值到相同的字段,您違反了第一個標準格式。 http://en.wikipedia.org/wiki/Database_normalization –

回答

1
String selectedItem = string.Empty; 
foreach (ListItem item in CheckBoxList1.Items) 
{ 
    if (item.Selected) 
    { 
     **selectedItem += "," + item.Text;** 
    } 
} 

if (selectedItem != string.Empty) 
{ 
    selectedItem = selectedItem.Substring(1); 
}