2017-01-09 3 views
0

存在しない私は、SELECT文があります。のC# - Npgsql.PostgresException 42703:列「ユーザ名が」C#でだから私のコードの後ろに

Select username from vw_members where username = 'SomeValue' 

をしかし、それは私のaspxページにこのエラーが返されます。コラム「ユーザ名」は

私はpgAdminでSQLEditorでその同じ文を実行する場合、私は私のコードの後ろにこのような何かを実行する場合、それは何の問題

を実行していないが存在しません:

Select username from tbl_users where username = 'SomeValue' 
0を

正常に実行されます。

ビューは、ユーザーテーブルとメンバーテーブルとの結合です。ここ は私の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 

は、任意の違いを確認できない場合があり、それは試してみるものです。

関連する問題