作爲例外指出的那樣,你必須爲了使用decimal
類型作爲參數明確設置SqlParameter.Precision
和SqlParameter.Scale
性能。
假設您的SQL字段的類型爲decimal(18,8)
。要做到這一點內嵌的方式是使用大括號初始化爲您的SqlParameter,同時將它添加到SqlParameterCollection
,如下所示:
cmd.Parameters.Add(new SqlParameter("@ordGty", SqlDbType.Decimal) {
Precision = 18, Scale = 8 });
你也可以做
cmd.Parameters.Add(new SqlParameter("@ordGty", SqlDbType.Decimal) {
Precision = 18, Scale = 8}).Value = 0.4m; // or whatever
添加值,如果你需要一個。你甚至可以做
cmd.Parameters.Add(new SqlParameter("@ordGty", SqlDbType.Decimal) {
Precision = 18, Scale = 8, Value = 0.4m /* or whatever */});
如果你願意。 Brace initialization真的很強大。注意:我意識到這是一個老問題,但我認爲這種形式比創建對象時更具可讀性,同時將其添加到列表中,然後設置比例和精度。爲了後人! (因爲這是一個高的谷歌搜索結果)
你有問題要問?你對這個錯誤有什麼不清楚的地方? – Oded 2012-01-06 13:06:39
嗨Oded,是的我得到了上述例外設置精度和規模。 – 2012-01-06 13:09:23
而且?什麼是不明確的錯誤?您需要設置精度和比例。 – Oded 2012-01-06 13:10:48