asp.net使用DataSet数据集插入记录
来源:互联网 发布:高性能笔记本 知乎 编辑:程序博客网 时间:2024/06/06 13:20
http://blog.csdn.net/beyondqd/article/details/6724778
http://blog.163.com/da7_1@126/blog/static/1040726782011101101344439/
Dataset 并不是Recordset的简单翻版。从一定的意义上来说,DataView更类似于Recordset。如果说DataReader是访问数据的最容易的方式,那么Dataset则是最完整的数据访问对象。通过Dataset,你可以操作已有的数据,还可以通过程序创建Dataset,加入Table到Dataset,并建立这些Table之间的关系。
使用Dataset的几个步骤
第1步,创建到数据源的连接:
SQLConnection con =new SQLConnection("server=localhost;uid=sa;pwd=;database=pubs");
第2步,创建DataSetCommand对象,指定一个存储过程的名字或者一个SQL语句,指定数据链路;
SQLDataSetCommand cmd =new SQLDataSetCommand("SELECT * FROM Authors", con);
第3步,创建一个Dataset对象
DataSet ds = new DataSet();
第4步,调用DataSetCommand的FillData方法,为Dataset填充数据。注意:数据链路没有必要是打开的。如果数据链路是关闭状态,FillData函数会打开它,并在FillData之后关闭数据链路。如果数据链路本来就是打开的,在FillData之后,数据链路依然保持打开状态。
int iRowCount = cmd.FillDataSet(ds, "Authors");
第5步,操作数据。由于FillData返回了记录的个数,我们可以构造一个循环,来操纵Dataset中的数据。
for(int i=0; i< iRowCount; i++){
DataRow dr = ds.Tables[0].Rows[i];
Console.WriteLine(dr["au_lname"]);
}
str=Request.QueryString["str"].ToString(); // Response.Write(str); string conn = "Data Source=qinzc.com;User ID=qzc;Password=qzc@dmin;DataBase=qin;Charset=utf8;"; MySqlConnection con = new MySqlConnection(conn); con.Open(); MySqlCommand cmd = new MySqlCommand("select * from books where name like '%"+str+"%';", con); // MySqlDataAdapter dr = cmd.Ex //MySqlDataReader dr = cmd.ExecuteReader(); MySqlDataAdapter myadater = new MySqlDataAdapter(cmd); DataSet ds = new DataSet(); myadater.Fill(ds, "ds"); listview1.DataSource = ds; listview1.DataBind(); //ds.Close(); con.Close();
使用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数据集中的数据进行数据更新。
- asp.net使用DataSet数据集插入记录
- asp.net使用DataSet数据集插入记录
- asp.net使用dataset批量添加数据
- Asp.Net使用DataSet查询数据库数据
- Asp.net取DataSet前几条数据和后几条数据集
- .NET 批量插入数据,DataSet, SqlDataAdapter.Update
- asp.net TXT文件转换成DataSet数据集
- asp.net DataSet添加新数据
- asp.net中用DataSet对象更新数据
- asp.net 中 sql dataset 显示数据
- Asp.Net学习笔记:使用DataSet
- ASP.net中DataSet使用笔记
- ASP.NET批量插入数据
- 【ADO.NET】数据集DataSet
- ASP.NET中使用数据处理插入数据注意的问题
- ASP.NET中使用数据处理插入数据注意的问题
- ASP.NET中使用数据处理插入数据注意的问题
- asp.net 使用记录
- scala总结(2)-- 集合类型
- 手机端网页web开发要点
- Intellij idea下启动 gradle android 项目报错总结
- cortex_m3_stm32嵌入式学习笔记(七):独立看门狗&窗口看门狗
- 《”2015年Web:追求原有“框架”外的新功能“》
- asp.net使用DataSet数据集插入记录
- JavaMail学习笔记3——JavaMail 接收邮件
- 技术指导:Subversion安装配置(Windows)之详解
- LeetCode OJ 之 Permutations (排列)
- android App级别的bug信息收集(crash信息保存和发送)
- 计算Android App占用的各种空间大小
- Android SDK Content Loader: (0%)
- IOS静态库-封装自己的.a文件<一>
- tjkelly com/ blog/wordpress-import-failed-how-to-fix-it