繁体   English   中英

C#与SQLEditor — Npgsql.PostgresException 42703:“用户名”列不存在

[英]C# vs SQLEditor — Npgsql.PostgresException 42703: column “username” does not exist

因此,在C#中的后台代码中,我有一个Select语句:

Select username from vw_members where username = 'SomeValue'

但这会在我的aspx页面上返回此错误:列“用户名”不存在

如果我在pgAdmin SQLEditor中运行同一条语句,则不会有问题

如果我在我的背后代码上运行以下代码:

Select username from tbl_users where username = 'SomeValue'

运行良好。

该视图是与用户表和成员表的联接。 这是我的C#代码:

string selectstmt = "Select UserName from vw_members where UserName = 'SomeValue'";

我在pgAdmin中的视图如下所示:

SELECT tbl_member.usertype AS "usertype",
    tbl_member.userid AS "userid",
    tbl_member.createdate AS "createdate",
    tbl_member.lastlogindate AS "lastlogindate",
    tbl_member.email AS "email",
    tbl_users.userid AS "usersid",
    tbl_users.username AS "username",
    tbl_users.lastactivitydate AS "lastactivitydate"
   FROM tbl_users,
    tbl_member
  WHERE tbl_users.userid = tbl_member.userid;

建议我看看是否启用了区分大小写的列排序规则 ,事实证明它已启用。 从那里,我确保所有列名称在相同情况下都匹配,然后一切正常。

尝试在您的视图中使用显式联接:

SELECT tbl_member.usertype AS "usertype",
    tbl_member.userid AS "userid",
    tbl_member.createdate AS "createdate",
    tbl_member.lastlogindate AS "lastlogindate",
    tbl_member.email AS "email",
    tbl_users.userid AS "usersid",
    tbl_users.username AS "username",
    tbl_users.lastactivitydate AS "lastactivitydate"
FROM tbl_users LEFT OUTER JOIN tbl_member
    ON tbl_users.userid = tbl_member.userid

可能没有任何区别,但是可以尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM