2017-01-09 287 views
0

所以在我身后的C#代码我有一个SELECT语句:C#VS SQLEditor - Npgsql.PostgresException 42703:列 “用户名” 不存在

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; 
+1

您是否使用了正确的数据库?也许你登录到SQLEditor的用户有一个不同于你用来在c#中连接的用户的默认数据库? –

+0

我检查了这种情况,两者都使用相同的数据库,以及相同的用户。 - 谢谢 – Tommy

+0

如果可能您启用了区分大小写的列整理功能?我注意到你在一个例子中使用'username',但在另一个例子中使用'username'。 –

回答

1

有人建议我去看看,看看是否区分大小写列排序规则启用和原来它被启用。从那里我确保我的所有专栏名称在相同的情况下匹配,然后所有的工作都正常。

0

尝试使用一个明确的加入您的看法:

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 

可能没有什么差别,但它是尝试的东西。