有什麼辦法檢查某些字符串是否與某些MS SQL類型兼容? 我將在將字符串插入數據庫中的表之前對其進行驗證。SQL Server數據類型兼容性
編輯:我在尋找一種方法來檢查,如果一些字符串是爲varchar,焦炭,位等兼容...
有什麼辦法檢查某些字符串是否與某些MS SQL類型兼容? 我將在將字符串插入數據庫中的表之前對其進行驗證。SQL Server數據類型兼容性
編輯:我在尋找一種方法來檢查,如果一些字符串是爲varchar,焦炭,位等兼容...
如果我正確地解釋這一點,你必須輸入爲字符串,你想要存儲在SQL Server數據庫中,並且列將是不同的類型,如int
,float
和money
。您想知道這些字符串是否會成功轉換爲適當的類型。
一種方法是簡單地將字符串作爲參數傳遞給SqlCommand
,使用parameterized query,爲參數設置適當的SQL數據類型。當你使用不會轉換的數據執行命令時,你會得到FormatExceptions
。
更明確地說,您可以嘗試使用適當的SQL數據類型來分析您的字符串。如果轉換失敗,它也會拋出FormatException
。
即使你解析字符串,我仍然會推薦使用參數化的SQL查詢SqlCommand
,或者甚至更好,像Entity Framework這樣的強類型ORM層。 EF會自動將SQL類型映射到.Net類型,因此,如果您嘗試將不兼容的值分配給實體的某個屬性,那麼您將擁有自動數據類型驗證。
代碼來解析SQL數據類型:
try
{
// throws FormatExcpetion
System.Data.SqlTypes.SqlInt16 i = System.Data.SqlTypes.SqlInt16.Parse("test");
}
catch (FormatException)
{
// handle it
}
try
{
// i will be set to 10
System.Data.SqlTypes.SqlInt16 i = System.Data.SqlTypes.SqlInt16.Parse("10");
}
catch (FormatException)
{
// handle it
}
你能解釋一下你正在試圖解決的具體問題? –
你的意思是說'string'等價於'char','varchar','nvarchar','text'等等嗎?你打算對琴絃進行什麼樣的確認? – Tim
你談論ADO.NET,EF或爲什麼你標記爲C#? –