我有一個DataTable充滿了數據庫中的數據。其中一列是int或null。在DataBase中,該列出現在TINYINT類型下。當sql列爲null或tinyint時,指定的轉換無效錯誤
在我的代碼中,我有一個與該表相對應的模型,並且我聲明瞭int類型下的特定屬性。我明白了這樣的:
foreach(var attr in attributes)
{
MyAttribute cat = new MyAttribute();
cat.glot = attr.isNull("attrGlot") ? 0 : attr.Field<int>("attrGlot");
}
所以basicly我檢查,如果它是一個零和分配0如果不是我把int值。
這是我如何申報MyAttribute一個例子:
public class MyAttribute
{
public int glot {get;set;}
}
但它說具體的轉換無效。我也試過用int?但我想得到int,所以這一列有點讓我迷惑。是否有一個特定類型的內部C#,我可以使用時.Field或我必須以不同的方式做到這一點?
如果我宣佈我爲TINYINT字節我得到一個錯誤「無法施展DBNull.Value鍵入‘System.Byte’。
看來你的數據庫值是'NULL'。什麼樣的數據類型是屬性的? – Adwaenyth
我有點不清楚你用什麼來連接你的數據庫。什麼是'屬性'的類型,然後是什麼類型的'attr'?我可能是錯的,但是在典型的.NET庫中不應該有名稱以小寫字母開頭的公共方法,所以'isNull'似乎指向某種自定義類型? – Shaamaan
你真的*只是*在這裏問這個問題:https://stackoverflow.com/questions/46469252/specified-cast-is-not-valid-inside-when-doing-fieldint –