我有一个实现接口的小班学生。问题是当从 Windows 窗体调用 ADD() 函数时,一旦它到达调用 Update() 函数的代码,DataTable _dtable(在本地声明)就会变为空。如果我从表单而不是类调用 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;
}