DataAdapter的update到底能不能改变数据库,不论我怎么用好像都没用啊!

xytme 2003-07-17 03:46:59
System.Data.OleDb.OleDbCommandBuilder custCB = new System.Data.OleDb.OleDbCommandBuilder(this.oleDbDataAdapter1 );

System.Data.DataSet custDS = new DataSet();
this.oleDbDataAdapter1.Fill(custDS,"TrackStatus");

//code to modify data in dataset here
for(int i=0;i<custDS.Tables[0].Rows.Count ;i++)
{
custDS.Tables[0].Rows[i]["Test"]="1";
}
this.oleDbDataAdapter1.Update(custDS,"TrackStatus");

上面的代码我想改变TrackStatus表中Test字段的所有值到"1",虽然custDS变了,但是使用update事件后数据源还是没有变,update方法到底怎么用啊,为什么改不了数据源?
...全文
65 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xytme 2003-07-17
  • 打赏
  • 举报
回复
新建了一个一摸一样的表,居然可以存储了,但是原来的表我把所有关系都删除了,还是保存不了,而且也不报错,看来可能是表被破坏了,但是真的感觉DataAdapter应该报错,我还以为我的程序有问题. 还是多谢大家,结贴了
liangzisiyun 2003-07-17
  • 打赏
  • 举报
回复
答案是肯定的。再看看是不是什么属性设置错了。
sky888888 2003-07-17
  • 打赏
  • 举报
回复
SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter)
用这个最好。。。更新对象和语句自动生成了。。
xytme 2003-07-17
  • 打赏
  • 举报
回复
bian8021:
我第一行就写了CommandBuilder,有效就好了
xiaodele:
this.oleDbDataAdapter1.Fill(custDS,"TrackStatus"),不是已经添加了
xiaodele 2003-07-17
  • 打赏
  • 举报
回复
SqlDataAdapter custDA = new SqlDataAdapter(commandText, connection);
SqlCommandBuilder custCB = new SqlCommandBuilder(custDA);
custDA.TableMappings.Add(tableName, ds.Tables[0].ToString());
martin628 2003-07-17
  • 打赏
  • 举报
回复
可以更新!你在.net的ide中直接拖出空件,建立好数据连接及绑定后,再this.oleDbDataAdapter1.Update就可以了,其中自动增加了很多东西
我没有仔细看,只是试了一下:)
herofyf 2003-07-17
  • 打赏
  • 举报
回复
表中设了关键字了吗?
vagrantisme 2003-07-17
  • 打赏
  • 举报
回复
up
bian8021 2003-07-17
  • 打赏
  • 举报
回复
你应该使用上SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter)
这样就可以了,这个可以保证你对dataset的更新,反馈到数据库的更新。
雪狼1234567 2003-07-17
  • 打赏
  • 举报
回复
参照如下代码:

//
// sqlInsertCommand1
//
this.sqlInsertCommand1.CommandText = "INSERT INTO student(stuno, name, sex, address) VALUES (@stuno, @name, @sex, @addr" +
"ess); SELECT stuno, name, sex, address FROM student WHERE (stuno = @stuno)";
this.sqlInsertCommand1.Connection = this.sqlConnection1;
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@stuno", System.Data.SqlDbType.Int, 4, "stuno"));
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.Int, 4, "name"));
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sex", System.Data.SqlDbType.Int, 4, "sex"));
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@address", System.Data.SqlDbType.Int, 4, "address"));
//
// sqlUpdateCommand1
//
this.sqlUpdateCommand1.CommandText = @"UPDATE student SET stuno = @stuno, name = @name, sex = @sex, address = @address WHERE (stuno = @Original_stuno) AND (address = @Original_address OR @Original_address IS NULL AND address IS NULL) AND (name = @Original_name OR @Original_name IS NULL AND name IS NULL) AND (sex = @Original_sex OR @Original_sex IS NULL AND sex IS NULL); SELECT stuno, name, sex, address FROM student WHERE (stuno = @stuno)";
this.sqlUpdateCommand1.Connection = this.sqlConnection1;
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@stuno", System.Data.SqlDbType.Int, 4, "stuno"));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.Int, 4, "name"));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sex", System.Data.SqlDbType.Int, 4, "sex"));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@address", System.Data.SqlDbType.Int, 4, "address"));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_stuno", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "stuno", System.Data.DataRowVersion.Original, null));

// sqlDeleteCommand1
//
this.sqlDeleteCommand1.CommandText = @"DELETE FROM student WHERE (stuno = @Original_stuno) ";
this.sqlDeleteCommand1.Connection = this.sqlConnection1;
this.sqlDeleteCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_stuno", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "stuno", System.Data.DataRowVersion.Original, null));

try
{
sqlDa.Update(dt.GetChanges,"customers");
return true;
}
catch(System.Data.SqlClient.SqlException ex)
{
myTran.Rollback();
return false;
}
finally
{
conn.Close();
}
fourfire29 2003-07-17
  • 打赏
  • 举报
回复
this.oleDbDataAdapter1的selectcommand,insertcommand,updatecommand,deletecommand设置了吗,表映射呢

110,825

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧