使用dataset修改数据可以这样://取得修改记录的id
int id =Convert.ToInt16(textBoxID.Text);
//使用选择方法取得需要修改的记录,注意返回的是数组。这里我们只需要第一条记录,使用后面要跟[0]
DataSetStu.stuRow sturow = (DataSetStu.stuRow)dataSetStu.stu.Select("Id=" + id + "")[0];
sturow.Name = textBoxName.Text;//修改字段值
sturow.Rark = textBoxRark.Text;
stuTableAdapter.Update(dataSetStu.stu);//写回数据库这样逐个字段修改没有问题。但是如果使用对象的方式,就无法执行修改啦。代码如下://取得修改记录的id
int id =Convert.ToInt16(textBoxID.Text);
//使用选择方法取得需要修改的记录,注意返回的是数组。这里我们只需要第一条记录,使用后面要跟[0]
DataSetStu.stuRow sturow = (DataSetStu.stuRow)dataSetStu.stu.Select("Id=" + id + "")[0];
sturow.Name = textBoxName.Text;//修改字段值
sturow = Dss;//DSS是,用于取得文本框值,返回DataSetStu.stuRow sturow的get方法
stuTableAdapter.Update(dataSetStu.stu);//写回数据库
Dss属性的声明
DataSetStu.stuRow dss;//说明数据集的行对象。
public DataSetStu.stuRow Dss
{
get
{
//用数据集创建新的行对象,并给行对象赋值,注意需要强制转换
dss = (DataSetStu.stuRow)dataSetStu.stu.NewRow();
dss.Id =Convert.ToInt16( textBoxID.Text);
dss.Name = textBoxName.Text;//给行对象中的字段赋值。
dss.Age = Convert.ToInt16(textBoxAge.Text);
dss.ClassID = Convert.ToInt16(comboBoxClass.SelectedValue);
dss.Sex = textBoxSex.Text;
dss.Rark = textBoxRark.Text;
return dss;
} }我使用跟踪调试,发现sturow 可以取得修改的值,但是就是无法修改数据,而且也不报错。郁闷中。请教各位啦,有没有什么好的方法解决,除啦这个方法,大家修改数据还有什么其他的好办法吗?
int id =Convert.ToInt16(textBoxID.Text);
//使用选择方法取得需要修改的记录,注意返回的是数组。这里我们只需要第一条记录,使用后面要跟[0]
DataSetStu.stuRow sturow = (DataSetStu.stuRow)dataSetStu.stu.Select("Id=" + id + "")[0];
sturow.Name = textBoxName.Text;//修改字段值
sturow.Rark = textBoxRark.Text;
stuTableAdapter.Update(dataSetStu.stu);//写回数据库这样逐个字段修改没有问题。但是如果使用对象的方式,就无法执行修改啦。代码如下://取得修改记录的id
int id =Convert.ToInt16(textBoxID.Text);
//使用选择方法取得需要修改的记录,注意返回的是数组。这里我们只需要第一条记录,使用后面要跟[0]
DataSetStu.stuRow sturow = (DataSetStu.stuRow)dataSetStu.stu.Select("Id=" + id + "")[0];
sturow.Name = textBoxName.Text;//修改字段值
sturow = Dss;//DSS是,用于取得文本框值,返回DataSetStu.stuRow sturow的get方法
stuTableAdapter.Update(dataSetStu.stu);//写回数据库
Dss属性的声明
DataSetStu.stuRow dss;//说明数据集的行对象。
public DataSetStu.stuRow Dss
{
get
{
//用数据集创建新的行对象,并给行对象赋值,注意需要强制转换
dss = (DataSetStu.stuRow)dataSetStu.stu.NewRow();
dss.Id =Convert.ToInt16( textBoxID.Text);
dss.Name = textBoxName.Text;//给行对象中的字段赋值。
dss.Age = Convert.ToInt16(textBoxAge.Text);
dss.ClassID = Convert.ToInt16(comboBoxClass.SelectedValue);
dss.Sex = textBoxSex.Text;
dss.Rark = textBoxRark.Text;
return dss;
} }我使用跟踪调试,发现sturow 可以取得修改的值,但是就是无法修改数据,而且也不报错。郁闷中。请教各位啦,有没有什么好的方法解决,除啦这个方法,大家修改数据还有什么其他的好办法吗?
问题在与它只能逐个赋值才能更新。
sturow.Name = textBoxName.Text;//修改字段值
sturow.Rark = textBoxRark.Text;
stuTableAdapter.Update(dataSetStu.stu);//写回数据库 如果是通过对象写入就不能更新
sturow = Dss;//DSS是,用于取得所有文本框值,返回DataSetStu.stuRow数据集行对象的get方法
stuTableAdapter.Update(dataSetStu.stu);//写回数据库
是获得dataset当中的一条记录的引用。而sturow = Dss 实际上是传递了一个新对象的引用。所以它不能对dataset修改。update也就不会写入数据库了。所以只有通过sturow.Rark = textBoxRark.Text; 赋值才能修改。