다음은 데이터베이스 스키마, 현재 삽입 된 데이터베이스 데이터 (단 하나의 레코드 임) 및 실행중인 코드를 제공합니다. 이것은 매우 간단한 설정이지만 데이터베이스에서 하나의 레코드를 반환하는 대신 아무 것도 반환하지 않습니다. 누구나 왜 그런 생각이 있니? 나는 ... 여기 내 지혜의 끝입니다매우 간단한 SQLite 쿼리가 예상대로 반환되지 않습니다.
테이블 : 하청 업체
열 : (이름 입력) 형식으로 아래.
ID guid,
BusinessName varchar(50),
Address varchar(200),
City varchar(50),
State varchar(50),
ZipCode varchar(50),
Contact varchar(50),
Phone varchar(50),
Fax varchar(50),
Email varchar(200),
GLOPolicy bit,
GLOLimit bigint,
GLOExpiration datetime,
ALPolicy bit,
ALLimit bigint,
ALExpiration datetime,
WCPolicy bit,
WCLimit bigint,
WCExpiration datetime,
ULPolicy bit,
ULLimit bigint,
ULExpiration datetime,
Notes varchar(15000)
=====
다음과 같이 내가 내 데이터베이스에서 하나 개의 레코드가 있습니다.
ID "7b143c19-ad66-46ad-b587-db0bee98cf1e"
BusinessName "1"
Address "1"
City "1"
State "1"
ZipCode "1"
Contact NULL
Phone NULL
Fax NULL
Email NULL
GLOPolicy False (0)
GLOLimit NULL
GLOExpiration NULL
ALPolicy False (0)
ALLimit NULL
ALExpiration NULL
WCPolicy False (0)
WCLimit NULL
WCExpiration NULL
ULPolicy False (0)
ULLimit NULL
ULExpiration NULL
Notes NULL
===== * 나는 다음과 같은 쿼리를 시도하고, 그리고 그것은 분명 위의 유일한 기록을 반환해야 할 때, 아무 것도 반환하지 않습니다. 그것은 SQLite는 것 같습니다 *
String ID = "7b143c19-ad66-46ad-b587-db0bee98cf1e";
DataTable dt = sqliteQuery.selectFromDatabase("*", "WHERE ID = '" + ID + "'");
그리고 위의 방법에 대한 코드가 ...
public DataTable selectFromDatabase(String column, String filter)
{
string SQL = "SELECT " + column + " FROM SUBCONTRACTOR " + filter;
SQLiteCommand cmd = new SQLiteCommand(SQL);
cmd.Connection = connection;
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
DataTable dt = ds.Tables[0];
return dt;
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return null;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
먼저 필터링하지 않고 선택하십시오. 모든 행을 가져 오도록 필터 대신 WHERE 1 = 1 (항상 참)이되도록 조건부를 설정하십시오. 당신이하지 않으면 그것은 잘못한 쿼리가 아닙니다. 또한 열 유형은 GUID이지만 쿼리는 문자열 값을 사용합니다. 전환이 필요할 수 있습니다. –
필터를 1 = 1로 설정하면 데이터베이스의 단일 레코드를 반환합니다. 어떤 유형의 전환이 있다고 생각합니까? 나는 쿼리를 할 때 모든 것이 문자열로 전달되었다는 가정하에있었습니다 ... 그렇지 않은가요? 그렇지 않은 경우 그러한 전환에 대해 알고 있습니까? – CODe