我正在尝试使用以下列创建用户友好的下拉列表:
LNAME, FNAME, USERID
这是我的SelectCommand
:
SELECT ISNULL(LNAME,'') + ', ' + ISNULL(FNAME,'') + ' (' + ISNULL(USERID,'') + ') ' AS FullName FROM USER ORDER BY FullName
结果是:
LNAME, FNAME (USERID)
这就是我想要的。我正在尝试将DataValueField
设置为USERID
以便在SelectedIndexChanged
中使用。现在它仅在DataValueField
设置为FullName
时才有效。将其设置为USERID
时,我收到以下错误:
DataBinding:'System.Data.DataRowView'不包含属性 名为'USERID'。
我需要使用USERID
进行下一步。有没有办法从USERID
语句中的别名中提取SELECT
?
答案 0 :(得分:2)
如果没有看到您的代码,很难给出明确的答案,但我建议您选择“用户友好”值以及UserID:
SELECT ISNULL(LNAME,'') +
', ' +
ISNULL(FNAME,'') +
' (' +
ISNULL(USERID,'') +
') ' AS FullName,
UserID
FROM USER ORDER BY FullName
然后将UserId指定为DataValueField。现在您没有选择UserId,所以如果您尝试将其指定为DataValueField,它将会爆炸。
答案 1 :(得分:1)
将SQL更改为单独的值和标签(文本)
SELECT
USERID, -- what the user actually selects
ISNULL(LNAME,'') + ', ' + ISNULL(FNAME,'') + ' (' + ISNULL(USERID,'') + ') '
AS FullName --what user sees and appears to SELECT
FROM
USER
ORDER BY
FullName
然后绑定
example on MSDN显示:价值没有空格,例如“Dark Khaki”vs“DarkKhaki”