У меня небольшая проблема с проверкой пользовательского ввода.Я хочу проверить, имеет ли вход "данный" тип данных.Проблема в «данности», как вы могли догадаться: -)
Я получаю SQLschematable через Datareader.База данных может быть обменена, так как программа должна уметь работать с любой иностранной базой данных.Поэтому я ничего не знаю об этом.Схематическая таблица перечисляет все столбцы из таблицы базы данных.Он содержит столбец «Тип данных», в котором перечислены типы данных .Net, соответствующие типам данных столбцов баз данных.
Пользователь может указать ввод данных для каждого столбца в представлении данных.То есть: пользователю предоставляется схема и редактируемый дополнительный столбец.
Теперь я хочу проверить, соответствует ли данный пользовательский ввод типу данных .Net.Обычно я проверял бы это, используя что-то вроде
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"] ))) ...
и много похожих строк, но кажется, что эта команда "is" работает только с типами, на которые непосредственно ссылается форма System.Type, как в "is String".
Как можно решить эту проблему?
заранее спасибо, Питер