2011-06-23 31 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); 
}