數據庫存儲nvarchar,我檢索信息,並且我想將它塞進C#數據類型中,而沒有任何聲明轉換代碼。NVarChar到C#數據類型
你可以隱式地將nvarchar轉換爲C#數據類型嗎? (如爲nvarchar爲int)
數據庫存儲nvarchar,我檢索信息,並且我想將它塞進C#數據類型中,而沒有任何聲明轉換代碼。NVarChar到C#數據類型
你可以隱式地將nvarchar轉換爲C#數據類型嗎? (如爲nvarchar爲int)
nvarchar的是一個字符串,如果你希望把它在一個int
你將不得不通過某種轉換的,因爲我可以在列「馬鈴薯」,什麼int
會說映射到?
Here is a listing所有SQL類型以及它們映射到的C#類型。所以如果你想在C#中使用int
而無需轉換,你唯一的選擇是在Sql中使用int
。
非常好,謝謝。 – user3308043 2014-08-29 23:47:30
4分鐘,我會通過複選標記。 – user3308043 2014-08-29 23:47:51
你可以隱式地處理它,除了將它視爲字符串。
你可以使用一些邏輯Parse
或更好TryParse
它,如果你期望它是一個整數。
看一看下面
string nvarchar1 = "12";
string nvarchar2 = "1.2";
string nvarchar3 = "hello";
var one = int.Parse(nvarchar1); // good
var two = int.Parse(nvarchar2); // exception
var three = int.Parse(nvarchar3); // exception
var bone = int.TryParse(nvarchar1,out one); // true
var btwo = int.TryParse(nvarchar2,out one).Dump(); // False, 0
var bthree = int.TryParse(nvarchar3,out one); // False, 0
如果多少你在你的數據庫信任你輸入這一切都取決於。
很棒的回答。帶有bool返回值的TryParse()是一個很棒的函數。 – user3308043 2014-08-29 23:51:01
您可以使用類似'int.TryParse()'的方式將*字符數據解析爲數字類型。請注意,沒有*隱式*保證任何給定的字符串都可以解釋爲數字,所以您的代碼應該處理解析失敗的情況。 – David 2014-08-29 23:40:21
@大衛看到我上面的編輯。 – user3308043 2014-08-29 23:46:07
語言中沒有任何機制會假裝字符串是一個整數,否。這樣的機制本質上是錯誤傾向的,因爲並不是所有的字符串都可以被解釋爲整數。您可以*寫*這種機制,它會在嘗試轉換數據之前在內部對數據執行安全檢查。儘管你最好的選擇是將數字數據存儲爲數字數據。 – David 2014-08-29 23:48:00