У меня есть небольшой класс Student, который реализует интерфейс. Проблема в том, что функция ADD() вызывается из формы Windows, и как только она достигает кода, в котором вызывается функция Update(), DataTable _dtable (объявленная локально) получает значение null. Код работает нормально, если я вызываю функцию Update() из формы вместо класса.Функция, не работающая с интерфейсом
Это первый раз, когда я задаю любой вопрос на этом сайте, поэтому я не знаю правил, но если я могу задать два вопроса, то я хотел бы знать, как лучше всего манипулировать данными, ориентированных и отключенных. Метод, который я использую, не очень практичен, так как я не использую хранимые процедуры SQL. Ссылка на какой-то учебник будет отличной.
Форма:
void IForm.SaveData(DBCommandType mode)
{
if (mode == DBCommandType.INSERT)
{
_std.FirstName = txtFirstName.Text;
_std.LastName = txtLastName.Text;
_istd.Add();
}
else if (mode == DBCommandType.UPDATE)
{
_istd.Update(_rowPosition);
}
}
Студент Класс:
int IStudent.Add()
{
int rowPosition;
int result;
Student std = new Student();
IStudent istd;
istd = (IStudent)std;
DataRow drNewRow = _dtable.NewRow();
_dtable.Rows.Add(drNewRow);
rowPosition = _dtable.Rows.Count - 1;
//_dtable holds it value before the Update() function gets called.
result = istd.Update(rowPosition);
return 1;
}
int IStudent.Update(int _rowPosition)
{
int result =0;
if (_dtable.Rows.Count != 0)
{
_dtable.Rows[_rowPosition]["FirstName"] = this.FirstName;
_dtable.Rows[_rowPosition]["LastName"] = this.LastName;
result = _dbc.UpdateDataTable();
}
return result;
}
уход объяснить немного? –
@retailcoder: проверьте его сейчас. –
Спасибо @Sudhakar за предложение. Я все еще получаю ту же ошибку. В режиме отладки он показывает мне, что есть 4 записи, но как только он вызывает Update(), _dtable становится ясным и устанавливается в null. Если я называю то же самое из FORM вместо класса, он отлично работает. – user2947021