首先,我喜歡指定數據類型,我鄙視AddWithValue
函數。C#:SqlCeParameter用於nVarChar的DbType?
我在.NET 4.0上構建一個SqlCeServer 3.5本地數據庫應用程序,它將在用戶PC上運行。
當我創建表格時,我使用來指定我的字符串字段。
這似乎工作正常,我可以打開表來驗證一切運作良好在Microsoft SQL Server管理工作室2008年。
當我將數據插入我的表,我用
public static SqlCeParameter ParameterString(string ColumnName, string value) {
SqlCeParameter p = new SqlCeParameter();
p.ParameterName = string.Format("@{0}", ColumnName);
p.DataType = DbType.String;
p.Size = 50;
p.Value = value;
return p;
}
當我插入這個數據,沒有錯誤,但該數據未插入。其他數據類型(int
,DateTime
,float
等)插入沒有問題。
問:是否有其他一些DbType
我需要指定插入爲NVarChar
?
你們是快!那麼,我應該爲'SqlCeParameter'將'SqlDbType.NVarChar'轉換回'DbType'嗎?現在,VS2010告訴我,「*不能隱式地將類型'System.Data.SqlDbType'轉換爲'System.Data.DbType'。存在明確的轉換(你是否誤判了一個轉換?)*」如果我正在轉換,是在DbType枚舉中不可用? – jp2code
查看每個元數據,我發現'SqlDbType.NVarChar'的值是12,'DbType'的元數據下的值是'Int64'。 ** {UGH!} **當然不是我會想到的! – jp2code
@ jp2code:據此構造函數應該採用'SqlDbType',而不是'DbType':http://msdn.microsoft.com/en-US/library/cbw9e693%28v=VS.80%29.aspx – Guffa