这是我的LINQ查询使用:
return dbContext.Books.Where(el => el.Name.Equals(name)).OrderBy(el => el.ID).ToList();
我从列表中得到两个值Value和Description。
<asp:DropDownList ID="ddlBooks" runat="server" DataTextField="Description" DataValueField="Value" AppendDataBoundItems="true">
ddlBooks.DataSource = EggController.getBooksList("Fiction");
ddlBooks.DataBind();
以下不起作用。
ddlBooks.Items.FindByValue(bookdtls.Book.TrimEnd()).Selected = true;
问题:我认为我需要在FindByValue失败时修剪“值”字段。这里有什么帮助?如何从ToList()修剪下面的内容?
return dbContext.Books.Where(el => el.Name.Equals(name)).OrderBy(el => el.ID).ToList();
答案 0 :(得分:2)
您可以使用此方法查找ListItem
:
ListItem item = ddlBooks.Items.Cast<ListItem>()
.First(item => item.Value.Trim() == bookdtls.Book.Trim());
item.Selected = true;
如果可能未包含图书名称,请使用FirstOrDefault
并检查null
。
但是你应该在之前修改名称,然后将它们插入到数据库中。
不幸的是,SQL Server在右边添加了值,这给出了一个问题
sql-server没有添加任何东西。也许您使用了错误的数据类型,例如char
而不是varchar
/ mvarchar
。然后它是固定长度的。因此,如果文本为foo
但列为char(10)
,则会获得7个额外空格。然后将其设为varchar
- 列(如果unicode使用nvarchar
)。