asp.net使用DataSet数据集插入记录

使用INSERT语句能够完成数据插入,使用DataSet对象也可以完成数据插入。为了将数据库的数据填充到DataSet中,则必须先使用DataAdapter对象的方法实现填充,当数据填充完成后,开发人员可以将记录添加到DataSet对象中,然后使用Update方法将记录插入数据库中。使用DataSet更新记录的步骤如下所示:

(1) 创建一个Connection对象。

(2)创建一个DataAdapter对象。

(3) 初始化适配器。

(4)使用数据适配器的Fill方法执行SELECT命令,并填充DataSet

(5) 使用DataTable对象提供的NewRow方法创建新行。

(6)将数据行的字段设置为插入的值。

(7) 使用DataRowAdd类的Add方法将数据行添加到数据表中。

(8)DataAdapter类的InsertCommand属性设置成需要插入记录的INSERT语句。

(9) 使用数据适配器提供的Update方法将新记录插入数据库。

(10)使用DataSet类提供的AcceptChanges方法将数据库与内存中的数据保持一致。

当使用DataSet插入记录前,需要创建Connection对象以保证数据库连接,示例代码如下所示。

            string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";//创建连接字串

            SqlConnection con = new SqlConnection(str);//创建连接对象

            con.Open();//打开连接

上述代码创建了一个数据库连接,并打开了数据库连接。完成数据连接后,就需要查询表中的数据并使用DataAdapter对象初始化适配器,示例代码如下所示。

            string strsql = "select * from mynews";//编写SQL语句

            SqlDataAdapter da = new SqlDataAdapter(strsql, con);//创建适配器

DataAdapter对象默认构造函数包括两个参数,其中一个参数是需要执行的SQL语句,另一个是Connection对象。在初始化适配器后,需要对适配器的相应的属性做设置,使用SqlCommandBuilder对象可以让系统构造InsertCommand属性,示例代码如下所示。

            SqlCommandBuilder build = new SqlCommandBuilder(da);//构造SQL语句

使用适配器的Fill方法能够填充DataSet数据集,示例代码如下所示。

            DataSet ds = new DataSet();//创建数据集

            da.Fill(ds, "datatable");//填充数据集

            DataTable tb = ds.Tables["datatable"];//创建表

            tb.PrimaryKey = new DataColumn[] { tb.Columns["id"] };//创建表的主键

上述代码创建了一个DataSet数据集对象,被填充数据后,数据集中表的名称被命名为datatable,该命名与数据库中的表的名称并不冲突。填充了DataSet数据对象后,需要使用DataRow对象为DataSet添加数据,示例代码如下所示。

            DataRow row = ds.Tables["datatable"].NewRow();//创建DataRow

            row["title"] = "使用DataSet插入新行";//赋值新列

            row["id"] = "15";

上述代码使用了NewRow方法创建新行返回DataRow对象,当DataRow对象中的相应的元素被赋值后,则需要使用Rows.Add方法增加新行,因为只对DataRow对象赋值,并不能自动的在数据库中增加新行。示例代码如下所示。

            ds.Tables["datatable"].Rows.Add(row);//添加新行

上述代码将数据更新到DataSet数据集中,为了保持数据集中的数据和数据库的数据的一致性,需使用Update方法,示例代码如下所示。

            da.Update(ds, "datatable");//更新数据

当执行了Update方法后,数据库中的数据就会同步DataSet数据集中的数据进行数据更新。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值