0
我正在編寫一個可以更改數據庫列的小c#工具。它也應該根據用戶輸入乘以一個特定的因子。 當然它與SQL:在乘以列時考慮數據類型
UPDATE table SET column = column * factor
工作然而這並沒有考慮列的數據類型,所以在一個錯誤的用戶輸入的數據類型爲「TEXT」一欄的情況下,也會相乘,不會有任何錯誤信息導致零。
我知道我可以在我的c#程序中獲取列的類型並在更新之前測試它,但是在我的情況下這會很慢並且不切實際,因爲我只使用sql的信息從
SELECT * FROM sqlite_master
得到的是有沒有辦法直接在源碼所需的反饋?
SQLite *會*在[數據類型 - 運算符](https://sqlite.org/datatype3.html#operators)中將數據類型考慮爲解釋。 '數學運算符上的操作數看起來沒有任何數值並且不爲NULL,它被轉換爲0或0.0。' –
您應該使用'typeof()'過濾掉非數值,如[在此問題中所示] (https://stackoverflow.com/questions/32528759/how-to-check-if-a-value-is-a-number-in-sqlite),例如'where typeof(column)='integer'' –