我试图通过LINQ实体作为一个项目向我的数据库添加一些复选框选项。然而,我遇到的障碍是我在尝试将这些添加到一个变量中以添加到数据库时出错。以下是我到目前为止的情况:
public string GetSelectedItems(CheckBoxList control)
{
var items = new StringBuilder();
foreach (ListItem item in chbxRoomChange.Items)
{
if (item.Selected)
items.Append(string.Format("{0},", item.Text));
}
return items.ToString().TrimEnd(',');
}
添加到db:
var choices = GetSelectedItems(chbxRoomChange);
rc.preference = choices;
答案 0 :(得分:0)
根据您发布的异常详细信息,我怀疑您插入数据库的列太小,无法容纳您从应用程序传递的数据。
调试您的应用并查看GetSelectedItems
返回的字符串长度,然后将其与您要插入的列的大小进行比较。我怀疑你会发现你的弦不适合你需要增加它的大小。
作为附注,您可以重写您的方法以使用1行:
var choices = string.Join(",", chbxRoomChange.Items
.Cast<ListItem>()
.Where(li => li.Selected)
.Select(li => li.Text)
.ToArray());