나는 C# 및 Npgsql에서 초보자이며 특정 테이블에서 검색을 시도하지만 예외가 발생합니다. 예외 벨로C# 메서드에서 예외를 반환하는 SELECT 쿼리
public User Login(Account c)
{
User usr = new User();
using (NpgsqlConnection con = new NpgsqlConnection(strConnection))
{
try
{
con.Open();
NpgsqlCommand command = new NpgsqlCommand();
command.Connection = con;
command.CommandText = "SELECT name FROM public.user WHERE c_id IN (SELECT id FROM public.account WHERE [email protected] AND [email protected])";
command.Parameters.AddWithValue("Email", c.Email);
command.Parameters.AddWithValue("Password", c.Password);
NpgsqlDataReader dr = command.ExecuteReader();
if (dr.HasRows)
{
usr.Name = dr["name"].ToString();
}
}
catch (Exception ex)
{
throw ex;
}
}
return usr;
}
:
나는 PgAdmin4를 사용하여 같은 일을하지만를했고, 나는 한 줄을 가지고 '어떤 행은 사용할 수 없습니다'. 정확히 내가 뭘 원하는지.System.InvalidOperationException은 :
SELECT name FROM public.user WHERE c_id IN (SELECT id FROM public.account WHERE email='[email protected]' AND password='user05');
어떻게 수정합니까?
사용 프로파일 러 C# 프로젝트에서 실행중인 정확한 쿼리를 검사합니다. – EvZ
맨 아래 쿼리에서 * name * 대신 ** nome **을 선택했는데 오타가 있습니까? 또한 * 암호 * 대 ** 센나 **. – Dan
@EvZ 데이터베이스 관련 예외는 있지만 .net 예외는 아닙니다. 아마도 필드에 접근하기 전에 datareader에서'.Read()'를 호출하지 않았기 때문일 것입니다. styxs 대답을 확인하십시오. – bradbury9