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

时间: 2024-10-24 23:08:33

使用DataSet数据集插入记录的相关文章

使用DataSet数据集删除记录

使用DataSet删除记录和使用DataSet更新记录非常的相似,DataSet删除记录的步骤如下所示. q  创建一个Connection对象. q  创建一个DataAdapter对象. q  初始化适配器. q  使用数据适配器的Fill方法执行SELECT命令,并填充DataSet. q  执行SqlCommandBuilder方法生成UpdataCommand方法. q  创建DataTable对象并指定相应的DataSet中的表. q  创建DataRow对象并查找需要修改的相应行.

C#操作Dataset数据集与SQLite数据库

近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘: 一.SQLite操作,直接贴代码,很简单: //创建一个数据库文件 string datasource=Application.StartupPath + "\\test.db"; System.Data.SQLite.SQLiteConnection.CreateFile(datasource); //连接数据库 System.Da

.net中Dataset数据集的认识

DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存.DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联.您还可通过使用 UniqueConstraint 和 ForeignKeyConstraint 对象在 DataSet 中实施数据完整性. 其实个人对DataSet的认识还并不是很深,只最近在.net的开发中研究了下.在开发过程中,我们可以通过DataAdapter使用数据源中的数据生成和填充

Java知多少(110)数据库之插入记录

插入数据表记录有3种方案 一.使用Statement对象 实现插入数据表记录的SQL语句的语法是: insert into 表名(字段名1,字段名2,……)value (字段值1,字段值2,……) 例如: insert into ksInfo(考号,姓名,成绩,地址,简历)value(‘200701’,’张大卫’534,’上海欧阳路218弄4-1202’,’’) 实现同样功能的Java程序代码是: sql = “insert intoksIno(考号,姓名,成绩,地址,简历)”; sql= =

插入记录INSERT

插入记录INSERT 我们先来看第一个操作:INSERT 实际上在mysql当中一共存在着3种不同的insert语句,我们先来看第一种.它的语法结构如下: 一.插入记录 INSERT [INTO] tbl_name [(col_name,-)] {VALUES | VALUE} ({expr | DEFAULT},-),(-),- 从语法结构中我们可以看到有个可选项col_name,就是我们的列名称,如果省略掉的话,就代表所有的字段依次被赋值,接下来我们可以发现,在值当中我们既可以跟表达式也可以

TXT文件转换成DataSet数据集

1 /// <summary> 2 /// TXT文件转换成DataSet数据集 3 /// </summary> 4 /// <param name="FilePath"></param> 5 /// <param name="TableName"></param> 6 /// <returns></returns> 7 private DataSet TextFile

MyBatis 插入时返回刚插入记录的主键值

MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java 1 package cn.com.zfc.model; 2 3 public class User { 4 5 private Integer id; 6 private String name; 7 private String password; 8 9 public Integer getId() { 10 retur

mysql防止重复插入记录方法总结

防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了. 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: 代码如下:  代码如下 复制代码  INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('[email protec

MyBatis获取插入记录的自增长字段值

第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares(spares_id,spares_na