我在檢查用戶輸入時遇到了一些問題。我想檢查輸入是否是「給定」數據類型。問題出在「給定」,你可能已經猜到了:-)檢查模式表和用戶數據的數據類型是否匹配
我通過Datareader獲得SQLschematable。該數據庫可以交換,因爲該程序應該能夠與任何外國數據庫一起工作。所以我不知道任何其他事情。模式表列出數據庫表中的所有列。它包含一個「DataType」列,其中列出了與數據庫列數據類型對應的.Net數據類型。
用戶可以爲datagridview中的每個列指定一個數據輸入。即:給用戶模式表和可編輯的額外列。
現在我想檢查給定的用戶輸入是否與.Net數據類型匹配。 Normaly我會使用類似
Input is String
或
String test = Input as String;
if (test = null) ....
檢查這一點,但問題是在創建數據類型(即字符串)
,如果我做這樣的事情:
foreach (DataRow row in MyDataTable.Rows){
System.Type t = (System.Type) row["DataType"];
if (! (((Object) row["Input"]) is t)){
MessageBox.Show("Error");
}
}
比t不被識別爲數據類型並且「is」命令使用不當。
我也試圖與
foreach (DataRow row in MyDataTable.Rows){
if (! (row[Input] is ((System.Type) row["DataType"]))) ...
和許多類似的行更直接的形式給出,但似乎這個「是」命令只適用於那些直接引用的形式System.Type的,就像類型「爲String 」。
怎麼能解決這個問題?
在此先感謝, 彼得
這個伎倆,謝謝。 – ThatBigGuy