[英]parameterized sql query issue
我從那里將數據導入數據庫的csv。
myCommand.Parameters.Add("@cn", SqlDbType.Text);
myCommand.Parameters["@cn"].Value = comp.Rows[i][1].ToString();
如果comp.Rows[i][1]
值為X'496e626randomcharacters'
收到此錯誤: The floating point value '496e626' is out of the range of computer representation (8 bytes). Incorrect syntax near '496e626'.
The floating point value '496e626' is out of the range of computer representation (8 bytes). Incorrect syntax near '496e626'.
應該將其作為字符串/文本來處理,所以我不理解浮點錯誤。 怎么了
采用
SqlDbType.VarChar
而不是
SqlDbType.Text
SqlDbType.Text
:字符串。 非Unicode數據的可變長度流,最大長度為2 31 -1(或2,147,483,647)個字符。
嘗試這個 :
myCommand.Parameters.Add("@cn", SqlDbType.VarChar).Value=comp.Rows[i][1].ToString();
您收到的錯誤來自SQL Server,並且在SQL嘗試將字符串值轉換為數字值時發生。
您沒有顯示任何相關的SQL代碼,但是我假設您正在將該值傳遞到存儲過程中,然后該存儲過程將其插入數據表中。 表中的參數類型和列類型也都必須為VARCHAR
或TEXT
,否則SQL會嘗試進行轉換。
另外,請注意將您的參數與數值進行比較; 例如,如果您嘗試進行如下比較:
WHERE @CN = 1.234
SQL將嘗試將VARCHAR
轉換為浮點值。 您可以使用ISNUMERIC
方法來避免比較失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.