zoukankan      html  css  js  c++  java
  • 使用DataSet数据集插入记录

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

    q  创建一个Connection对象。

    q  创建一个DataAdapter对象。

    q  初始化适配器。

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

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

    q  将数据行的字段设置为插入的值。

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

    q  把DataAdapter类的InsertCommand属性设置成需要插入记录的INSERT语句。

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

    q  使用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数据集中的数据进行数据更新。

  • 相关阅读:
    腾讯云环境配置之PHP5.6.3 + redis扩展 稳定版
    越狱后的ios如何用apt-get 安装各种命令
    批量 kill mysql 中运行时间长的sql
    谷歌Chrome浏览器开发者工具的基础功能
    话说好像是这样,ios下面通常用iframe来打开你的scheme地址; Android下通常用location.href来。。。 不过实际情况好像比这个复杂得多。。
    js判断移动端是否安装某款app的多种方法
    设计不错的网站
    BADIP filter
    开窗函数 函数() OVER()
    2018年1月初的一次面试题
  • 原文地址:https://www.cnblogs.com/zywf/p/4605247.html
Copyright © 2011-2022 走看看