0
WinMobile 6.1 Prof. CE OS 5.2.20269 SqlserverCE 3.5。調試時以及部署時都存在問題。SqlServerCE Select語句本機異常
從表中選擇count(*),您將得到一個有效的結果並按預期得到代碼流。
從表中選擇字段名稱,並且executereader會引發本機異常。即錯誤在執行代碼之外,'catch'語句不執行。
鑽研在移動裝置上錯誤的細節示出了示數的dll是sqlceqp35.dll在SqlCeDataReader.FillMetaData(從initializeDataReader調用)
其他的答案都表示使用 sqlce.repl.ppc.wce4 .armv4.CAB和設備上的朋友。我安裝了這些默認的'設備'選項,但它沒有任何區別。
WinMobile的體驗很小,所以也許我錯過了一些簡單的東西。
有趣的是,我寫入數據庫上游沒有問題。
連接字符串:
private const string MsConn = @"Data Source=Program Files\Inspector\Inspector.sdf;Persist Security Info=False;";
數據類功能如下:
public int GetLogonId()
{
SqlCeConnection conn = new SqlCeConnection(MsConn);
conn.Open();
SqlCeCommand cmdSelect = conn.CreateCommand();
SqlCeDataReader r = null;
try
{
const string sqlSelect = "select inspector from Inspector";
//const string sqlSelect = "Select count(*) from Inspector"; This works
cmdSelect.CommandText = sqlSelect;
//cmdSelect.Prepare();
r = cmdSelect.ExecuteReader();//Native error here
return r.Read() ? r.GetInt32(0) : 0;
}
catch (Exception ex)
{
throw new Exception("GetLogonId " + ex.Message);
}
finally
{
conn.Close();
cmdSelect.Dispose();
}
}
你確定該列是'inspector'而不是'Inspector'? (可能是cAsE SenSiTIvE - 對CE不夠熟悉,無法確定是否存在問題。) –
Hi Aaron,不應該區分大小寫,但我已經重複檢查,列名是'inspector',感謝Bob –
對象名稱在CE中從不區分大小寫。你有沒有試過[Inspector]? – ErikEJ