下面我提供了我的數據庫模式,當前插入的數據庫數據(只有一條記錄)和我正在運行的代碼。這是一個非常簡單的設置,但不返回數據庫中的一條記錄,它不返回任何內容。任何人有任何想法爲什麼?我在這裏我束手無策......極其簡單的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
===== * 我試圖下面的查詢,並沒有返回,當它顯然應該返回的唯一記錄,如上圖所示。 *
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(總是爲true)而不是篩選器,以確保獲得所有行。如果你不這樣做,那不是錯誤的查詢。此外,您的列類型是一個GUID,但您的查詢使用字符串值。您可能需要轉換。 – 2010-12-19 06:33:38
將篩選器設置爲1 = 1時,它將返回數據庫中的單個記錄,因爲它應該如此。假設有什麼類型的轉換?我在做假設時,所有事情都是以字符串的形式傳遞的......是不是這種情況?如果不是,你知道這樣的轉換嗎? – CODe 2010-12-19 06:35:12