毕业设计网
开发环境 |

asp.net把对DataSet的修改到数据库

对数据库的更新,无非就是执行INSERT、UPDATE、DELETE语句,这些语句可以由DataAdapter对象来自动生成,这种情况下DataAdapter会扫描DataSet中的表,找出被修改、删除、新增的行,并生成相应的SQL语句。这种方法虽然简单,但是效率较低。

另一种方法就是我们自己指定SQL语句,不需要DataAdapter对象生成,这样做可以提高程序执行效率,但是实现起来稍微繁琐一些。

1、  由DataAdapter对象来自动生成更新语句,需要生成一个CommandBuilder对象。

另外,要求表中必须存在唯一主键列,否则不能自动生成更新语句。

string connStr = "…… ";

string selectStr = "SELECT * FROM TableName";

OracleConnection conn = new OracleConnection(connStr);

OracleCommand cmd = new OracleCommand(selectStr, conn);

OracleDataAdapter ada = new OracleDataAdapter(cmd);

/*

在使用DataAdapter的Fill方法填充DataSet对象时,如果想要使Fill建立的表包含主键信息、唯一约束、列属性、是否允许空值、列的最大长度、只读列、自动增加列等等,只需要指定DataAdapter.MissingSchemaAction为MissingSchemaAction.AddWithKey。

*/

ada.MissingSchemaAction = MissingSchemaAction.AddWithKey;
OracleCommandBuilder myCommmandBuilder = new OracleCommandBuilder(ada);
DataSet ds = new DataSet();

ada.Fill(ds, "TableName");

 

// 更新数据

ds.Tables["TableName "].Rows[lineNum]["FieldName"] = SomeValue;

 

// 插入行

DataRow dr = ds.Tables["TableName"].NewRow();

dr.BeginEdit();

dr["fieldName"] = SomeValue;

……

dr.EndEdit();

 

//删除行

this.Tables["TableName"].Rows[“PrimaryKey Value”].Delete();

ada.UpdateData(ds, “TableName”);

ds.AcceptChanges();

 

在对DataSet中的Table进行修改后,被修改的行会设置RowState属性来标志改行的状态,RowState有五种状态,它们是Added、Deleted、Modified、Detached和Unchanged。在将修改后的数据提交到数据库后,应该调用AcceptChanges方法来将RowState属性设置为“未修改”状态,否则在下次提交更新的时候以前更新会被重复提交。
 

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:asp.net基础 执行存储过程
下一篇:asp.net手动指定SQL语句


版权所有 毕业设计网联系qq:242219979 © 2007-2022