Недавно мне было поручено обновить приложение с .net 1.1 до 3.5, и я наткнулся на RowFilter в DataView, который по-разному взаимодействовал между двумя версиями.
Вот мой блок кода в 1.1, который работает в 1.1, но не 3.5. Я получаю следующую ошибку, пытаясь запустить это в 3.5 «Не удается выполнить операцию« = »для System.String и System.Int32»
И 1.1, и 3.5 бьют по одной и той же базе данных, я просто смущен тем, как 1.1 видит строковый параметр и обрабатывает его как строку без необходимости ставить галочки вокруг него, но в 3.5 он видит rptNum и требует, чтобы вы ставили галочки вокруг Это. Поле в dv является строкой DataType.
private DataView BuildDataView(string rptNum) {
DataView dv = null;
if(dt != null) {
dv=new DataView(dt);
dv.RowFilter="reporting_number = " + rptNum;
}
return dv;
}
Вот мой блок кода в 3.5 изменен, чтобы он работал. Я должен был добавить метки вокруг параметра строки, чтобы он рассматривал его как строку.
private DataView BuildDataView(string rptNum) {
DataView dv = null;
if(dt != null) {
dv=new DataView(dt);
dv.RowFilter="reporting_number = '" + rptNum + "'";
}
return dv;
}