社区
C#
帖子详情
请教有关C# DataSet DataTable DataGrad SqlCommand SqlDataAdapter 的区别
wdd000
2007-11-11 08:37:39
请教有关C# DataSet DataTable DataGrad SqlCommand SqlDataAdapter 的区别
现在已经搞混淆了 不知道什么时候该用什么 希望大虾们能给与指导
...全文
144
2
打赏
收藏
请教有关C# DataSet DataTable DataGrad SqlCommand SqlDataAdapter 的区别
请教有关C# DataSet DataTable DataGrad SqlCommand SqlDataAdapter 的区别 现在已经搞混淆了 不知道什么时候该用什么 希望大虾们能给与指导
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sentimental
2007-11-12
打赏
举报
回复
DataSet 可以理解为内存中的数据库
DataTAble 在DataSet中的表
SqlCommand 用于在数据库中执行一个SQL命令
SqlDataAdapter 用于数据库和DataSet 的双向数据交流的作用,例如,利用数据库里的数据更新DataSet中的表,或利用DataSet中的数据更新数据库。
希望能对你有帮助
wdd000
2007-11-12
打赏
举报
回复
自己顶 !!求教
C#
使用
Data
Set
Data
table
更新数据库的三种实现方法
本文以实例形式讲述了使用
Data
Set
Data
table
更新数据库的三种实现方法,包括CommandBuilder 方法、
Data
Adapter
更新数据源以及使用
sql
语句更新。分享给大家供大家参考之用。具体方法如下: 一、自动生成命令的条件 CommandBuilder 方法 a)动态指定 SelectCommand 属性 b)利用 CommandBuilder 对象自动生成
Data
Adapter
的 DeleteCommand、InsertCommand 和 UpdateCommand。 c)为了返回构造 INSERT、UPDATE 和 DELETE 。
SQL
CommandBuil
My
sql
DLL,
C#
操作MY
SQL
数据库
1、
Sql
Connection类 构造函数:
Sql
Connection(connstr); 属性:
Data
base//获取当前数据库或连接打开后要使用的数据库的名称 Connectionstring//获取或设置用于打开
SQL
Server 数据库的字符串 方法: Open() Close() Dispose()//释放所有资源 2、
Sql
Command
类 构造函数:
Sql
Command
(string,conn) 属性: CommandType//获取或设置一个值,该值指示如何解释 CommandText 属 CommandText //获取或设置要对数据源执行
SQL
语句 Connection//获取或设置
Sql
Command
的此实例使用的
Sql
Connection Parameters//获取
Sql
ParameterCollection。参数集合 方法: ExecuteNonQuery(): 返回受影响函数,如增、删、改操作; ExecuteScalar():执行查询,返回首行首列的结果; ExecuteReader():返回一个数据流(
Sql
Data
Reader对象)。 实例1:
Sql
Command
cmd = new
Sql
Command
() cmd.connection =conn; cmd.CommandType = CommandType.Text; cmd.CommandText ="select *from produce=@ID"; cmd.Parameters.Add("@ID",
Sql
DBType.NVarChar,10,ID).values=1; cmd.ExecuteScalar(); 实例2:
Sql
Command
cmd = new
Sql
Command
(“select *from test”,conn); cmd.ExecuteScalar(); 注意: ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对于这种更新操作 用我们平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1,这种情况跟我们平时的思维方式有点差距所以应该好好的注意了, 3、
Sql
Data
Reader类 是由ExecuteReader()返回一个数据流(
Sql
Data
Reader对象)没有构造方法 属性:Connection//获取与
Sql
Data
Reader 关联的
Sql
Connection。 FieldCount//获取当前行中的列数。 HasRows//获取一个值,该值指示
Sql
Data
Reader 是否包含一行或多行 RecordsAffect//获取执行 Transact-
SQL
语句所更改、插入或删除的行数 方法:Read();//使
Sql
Data
Reader 前进到下一条记录 GetType();//获取当前实例的 Type NextResult();//当读取批处理 Transact-
SQL
语句的结果时,使数据读取器前进到下一个结果 4、
Sql
Data
Apater类 构造方法:
Sql
Data
Apater()
Sql
Data
Adapter
(
Sql
Command
)//初始化
Sql
Data
Adapter
类的新实例,用指定的
Sql
Command
作为 SelectCommand 的属性。
Sql
Data
Apater(string,conn)//使用 SelectCommand 和
Sql
Connection 对象初始化
Sql
Data
Adapter
类的一个新实例 属性: DeleteCommand SelectCommand InsertCommand Up
data
Command 方法: Fill(
Data
Set
)//在
Data
Set
中添加或刷新行 Fill(
Data
Table
)//在
Data
Set
的指定范围中添加或刷新行,以与使用
Data
Table
名称的数据源中的行匹配。 (继承自Db
Data
Adapter
。 Update(
Data
Row[])//通过为
Data
Set
中的指定数组中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值 Update(
Data
Set
)//通过为指定的
Data
Table
中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值 Update(
Data
Table
) 实例1 // 隐藏了
Sql
Command
对象的定义,同时隐藏了
Sql
Command
对象与
Sql
Data
Adapter
对象的绑定
Sql
Data
Adapter
myda= new
Sql
Data
Adapter
("select * from test",conn); 实例2
Sql
Command
my
Sql
Command
= new
Sql
Command
();// 创建
Sql
Command
my
Sql
Command
.CommandType = CommandType.Text; my
Sql
Command
.CommandText = "select * from product"; my
Sql
Command
.Connection =
sql
Cnt;
Sql
Data
Adapter
my
Data
Adapter
= new
Sql
Data
Adapter
(); // 创建
Sql
Data
Adapter
my
Data
Adapter
.SelectCommand = my
Sql
Command
; // 为
Sql
Data
Adapter
对象绑定所要执行的
Sql
Command
对象 5、
Data
Set
类 命名空间:System.
Data
.
Data
Set
。 数据集,本地微型数据库,可以存储多张表。 //使用
Data
Set
第一步就是将
Sql
Data
Adapter
返回的数据集(表)填充到
Data
set
对象中:
Sql
Data
Adapter
my
Data
Adapter
= new
Sql
Data
Adapter
("select * from product",
sql
Cnt);
Data
Set
my
Data
Set
= new
Data
Set
(); // 创建
Data
Set
my
Data
Adapter
.Fill(my
Data
Set
, "product"); // 将返回的数据集作为“表”填入
Data
Set
中,表名可以与数据库真实的表名不同,并不影响后续的增、删、改等操作 //访问
data
set
中的数据
Data
Table
myTable = my
Data
Set
.Tables["product"]; foreach (
Data
Row myRow in myTable.Rows) { foreach (
Data
Column myColumn in myTable.Columns) { Console.WriteLine(myRow[myColumn]); //遍历表中的每个单元格 } } // 修改
Data
Set
Data
Table
myTable = my
Data
Set
.Tables["product"]; foreach (
Data
Row myRow in myTable.Rows) { myRow["name"] = myRow["name"] + "商品"; } // 将
Data
Set
的修改提交至“数据库”
Sql
Command
Builder my
Sql
Command
Builder = new
Sql
Command
Builder(my
Data
Adapter
); my
Data
Adapter
.Update(my
Data
Set
, "product"); // 添加一行
Data
Row myRow = myTable.NewRow(); myRow["name"] = "捷安特"; myRow["price"] = 13.2; //myRow["id"] = 100; id若为“自动增长”,此处可以不设置,即便设置也无效 myTable.Rows.Add(myRow); // 将
Data
Set
的修改提交至“数据库”
Sql
Command
Builder my
Sql
Command
Builder = new
Sql
Command
Builder(my
Data
Adapter
); my
Data
Adapter
.Update(my
Data
Set
, "product"); // 删除第一行
Data
Table
myTable = my
Data
Set
.Tables["product"]; myTable.Rows[0].Delete();
Sql
Command
Builder my
Sql
Command
Builder = new
Sql
Command
Builder(my
Data
Adapter
); my
Data
Adapter
.Update(my
Data
Set
, "product");
学生管理系统--
C#
C#
学生管理系统 主要代码: (1)自定义函数类代码: public class Link
Data
Base { private string str
SQL
; //与
SQL
Server 的连接字符串设置 //与数据库的连接 private string connectionString = "server = .;
data
base=stu_Manage;uid=sa;pwd=123"; private static
Sql
Connection con = new
Sql
Connection("server = .;
data
base=stu_Manage;uid=sa;pwd=123"); private
Sql
Connection myConnection; private
Data
Set
ds = new
Data
Set
(); private
Sql
Data
Adapter
da; public
Data
Set
Select
Data
Base(string tempStr
SQL
, string tempTableName) //根据输入的
SQL
语句检索数据库数据 { this.str
SQL
= tempStr
SQL
; this.myConnection = new
Sql
Connection(connectionString); this.da = new
Sql
Data
Adapter
(this.str
SQL
, this.myConnection); this.ds.Clear(); this.da.Fill(ds, tempTableName); //返回填充了数据的
Data
Set
,其中数据表以tempTableName给出的字符串命名 return ds; } public
Data
Table
Select
Data
Base(string tempStr
SQL
) //检索数据库数据(传字符串直接操作数据库) { this.myConnection = new
Sql
Connection(connectionString);
Data
Set
temp
Data
Set
= new
Data
Set
(); this.da = new
Sql
Data
Adapter
(tempStr
SQL
, this.myConnection); this.da.Fill(temp
Data
Set
); return temp
Data
Set
.Tables[0]; } public void deleteInfo(string strcmd)//删除信息 {
Sql
Command
cmd = new
Sql
Command
(strcmd, con); try { con.Open(); if (MessageBox.Show("确定要删除吗?", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { cmd.ExecuteNonQuery(); MessageBox.Show("删除成功!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } finally { con.Close(); } } public void addInfo(string strcmd)//定义添加信息事件 { try { con.Open();
Sql
Command
cmd = new
Sql
Command
(strcmd, con); cmd.ExecuteNonQuery(); MessageBox.Show("添加成功"); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } finally { con.Close(); } } public void updateInfo(string strcmd)//自定义更新信息方法 { try { con.Open();
Sql
Command
cmd = new
Sql
Command
(strcmd, con); cmd.ExecuteNonQuery(); MessageBox.Show("修改成功"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { con.Close(); } } } . . . . . . . . . (2) > . . .
DBHelper方便连接数据库 DBHelper
using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.
Data
; using System.
Data
.
Sql
Client; using System.Configuration; namespace MyOfficeDAL { public static class DBHelper { private static
Sql
Connection connection; public static
Sql
Connection Connection { get { string connectionString = ConfigurationManager.ConnectionStrings["MyOfficeConnectionString"].ConnectionString; connection = new
Sql
Connection(connectionString); if (connection == null) { connection.Open(); } else if (connection.State == System.
Data
.ConnectionState.Closed) { connection.Open(); } else if (connection.State == System.
Data
.ConnectionState.Broken) { connection.Close(); connection.Open(); } return connection; } } public static int ExecuteCommand(string safe
Sql
) {
Sql
Command
cmd = new
Sql
Command
(safe
Sql
, Connection); int result = cmd.ExecuteNonQuery(); return result; } public static int ExecuteCommand(string
sql
, params
Sql
Parameter[] values) {
Sql
Command
cmd = new
Sql
Command
(
sql
, Connection); cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } public static string ReturnStringScalar(string safe
Sql
) {
Sql
Command
cmd = new
Sql
Command
(safe
Sql
, Connection); try { string result = cmd.ExecuteScalar().ToString(); return result; } catch (Exception ex) { return "0"; } connection.Close(); } public static int GetScalar(string safe
Sql
) {
Sql
Command
cmd = new
Sql
Command
(safe
Sql
, Connection); try { int result = Convert.ToInt32(cmd.ExecuteScalar()); return result; } catch (Exception e) { return 0; } connection.Close(); } public static int GetScalar(string
sql
, params
Sql
Parameter[] values) {
Sql
Command
cmd = new
Sql
Command
(
sql
, Connection); cmd.Parameters.AddRange(values); int result = Convert.ToInt32(cmd.ExecuteScalar()); return result; connection.Close(); } public static
Sql
Data
Reader GetReader(string safe
Sql
) {
Sql
Command
cmd = new
Sql
Command
(safe
Sql
, Connection);
Sql
Data
Reader reader = cmd.ExecuteReader(); return reader; reader.Close(); reader.Dispose(); } public static
Sql
Data
Reader GetReader(string
sql
, params
Sql
Parameter[] values) {
Sql
Command
cmd = new
Sql
Command
(
sql
, Connection); cmd.Parameters.AddRange(values);
Sql
Data
Reader reader = cmd.ExecuteReader(); return reader; reader.Close(); reader.Dispose(); } public static
Data
Table
Get
Data
Set
(string safe
Sql
) {
Data
Set
ds = new
Data
Set
();
Sql
Command
cmd = new
Sql
Command
(safe
Sql
, Connection);
Sql
Data
Adapter
da = new
Sql
Data
Adapter
(cmd); da.Fill(ds); connection.Close(); connection.Dispose(); return ds.Tables[0]; } public static
Data
Table
Get
Data
Set
(string
sql
, params
Sql
Parameter[] values) {
Data
Set
ds = new
Data
Set
();
Sql
Command
cmd = new
Sql
Command
(
sql
, Connection); cmd.Parameters.AddRange(values);
Sql
Data
Adapter
da = new
Sql
Data
Adapter
(cmd); da.Fill(ds); connection.Close(); connection.Dispose(); return ds.Tables[0]; } } }
ADO.NET 2.0技术内幕(高清 中文 带书签 全)
ADO.NET 2.0技术内幕(高清 中文 带书签 全) 编辑推荐 核心主题全面涵盖,深入剖析个人精髓;示例丰富,同时提供Visual Basic和Visual
C#
两种版本;独特的常见问题解析方式可使难题迎刃而解。 引导开发人员创建分布式、以数据为中心的应用程序的权威指南。 本书可以使您的专业知识不再停留在基础阶段,它会引领您深入研究ADO.NET 2.0的重要编程主题。本书作为全面的技术内幕参考书,提供了专家指南、实用指令及用Visual
c#
和Visual Basic编写的代码示例,帮助您深入掌握如何开发Micrsoft Windows和Web数据库应用程序。 本书重要主题:在Microsoft Visual Studio 2005中使用设计时数据访问特性;使用Microsoft .NET Framework 2.0数据提供程序连接数据库;构建连接字符串,启用连接池;执行查询,包括参数化查询和非同步查询,并获取结果;创建
Data
Set
对象以处理脱机数据,并研究常用场景;使用Microsoft
SQL
Server 2005中新的公共语言运行时特性和XML数据类型;为简单和复杂的更新生成逻辑和使用存储过程;使用ASP.NET 2.0中的新数据访问性设计Web应用程序——包括无代码数据绑定功能。 内容简介 本书介绍了如何用ADO.NET 2.0对独立应用、企业级应用和Web应用程序中的数据进行访问、排序和操作。作者针对如何利用Visual Studio 2005中的新工具和向导,编写、测试并调试数据库应用程序代码,用丰富的示例代码、教程式的风格及特色段落介绍了最佳实践。本书描述了ADO.NET对象模型及其用于Web扩展的XML特性,还涉及Microsoft
SQL
Server 2000和
SQL
Server 2005以及其他一些核心主题。 本书学习ADO.NET的理想参考书,也是造就专业编程高手的指南,适用于所有在.NET应用程序中编写数据访问代码的人员。 作者简介 斯赛帕,David Sceppa,
SQL
Server开发团队的项目经理,也是ADO.NET专家。作为Microsoft Developer Support团队的前技术邻导人,他曾经帮助客户使用Visual Basic和Microsoft Visual FoxPro来构建数据库应用程序。David拥有微软.NET MCSD认证,并有丰富的教学经验。 目录 第Ⅰ部分 Microsoft ADO.NET 2.0入门 第1章 ADO.NET概述 1.1 没有新的对象模型 1.2 ADO.NET对象模型 1.3 常见问题 第2章 用Microsoft Visual Studio 2005生成第一个ADO.NET应用程序 2.1 演示 2.2 不编写代码而生成数据访问窗体 2.3 常见问题 第Ⅱ部分 获取连接:使用.NET数据提供程序 第3章 连接数据库 3.1 生成
Sql
Connection对象 3.2 打开
Sql
Connection对象 3.3 关闭
Sql
Connection对象 3.4 自行清除连接 3.5 连接字符串 3.6 连接池 3.7 将
Sql
Connection用作起始点 3.8 Visual Studio设计时特性 3.9
Sql
Connection对象参考 3.10 常见问题 第4章 数据库查询 4.1 在代码中使用
Sql
Command
对象 4.2 使用
Sql
Data
Reader 4.3 使用参数化查询 4.4 Microsoft Visual Studio设计时特性 4.5
Sql
Command
,
Sql
Data
Reader和
Sql
Parameter的对象参考 4.6 常见问题 第5章 用
Sql
Data
Adapfer对象获取数据 5.1 何为
Sql
Data
Adapter
对象 5.2 创建并使用
Sql
Data
Adapter
对象 5.3 Visual Studio 2005设计时特性 5.4
Sql
Data
Adapter
参考 5.5 常见问题 第Ⅲ部分 处理脱机数据——ADO.NET
Data
Set
第6章 处理
Data
Set
对象 6.1
Data
Set
类的特性 6.2 使用
Data
Set
对象 6.3 在Visual Studio中处理
Data
Set
对象 6.4
Data
Set
,
Data
Table
,
Data
Column,
Data
Row,UniqueConstraint和ForeignKeyConstraint类参考 6.5 常见问题 第7章 处理关系数据 7.1 关系数据访问概述 7.2 在代码中使用
Data
Relation对象 7.3 在Microsoft Visual Studio中创建
Data
Relation对象 7.4
Data
Relation对象参考 7.5 常见问题 第8章 排序、搜索和筛选 8.1 使用
Data
Table
类的搜索和筛选功能 8.2 何为
Data
View对象 8.3 在代码中使用
Data
View对象 8.4 在Visual Studio中创建
Data
View对象 8.5
Data
View对象参考 8.6 常见问题 第9章 使用强类型
Data
Set
对象和Table
Adapter
9.1 强类型
Data
Set
9.2 创建强类型
Data
Set
对象 9.3 使用强类型
Data
Set
对象 9.4 何时使用强类型
Data
Set
对象 9.5 Table
Adapter
简介 9.6 选择自己的方法 9.7 常见问题 第10章 向数据库中提交更新 10.1 使用参数化
Sql
Command
提交更新 10.2 使用
Sql
Data
Adapter
提交更新 10.3 使用
Sql
Data
Adapter
对象提交更新 10.4 手动配置
Sql
Data
Adapter
对象 10.5 使用
Sql
Command
Builder对象生成更新逻辑 10.6 使用Visual Studio【TableAdaptet 配置向导】生成更新逻辑 10.7 返回
Data
Adapter
10.8 在
Sql
Transaction中提交更新 10.9
Sql
Command
Buildet对象参考 10.10 常见问题 第11章 复杂更新 11.1 在提交更新后刷新一行 11.2 获取新生成的自动增量值 11.3 提交分层更改 11.4 分离和重新集成更改 11.5 处理失败的更新尝试 11.6 使用分布式事务 11.7 批量查询 11.8
SQL
批量复制 11.9
Data
Set
对象与事务 11.10 在处理复杂更新方案时,使用AD0.NET 11.11 常见问题 第12章 使用XML数据 12.1 架起XML和数据访问之间的桥梁 12.2 读写XML数据 12.3
Data
Set
+XmlDocument=Xml
Data
Document 12.4 使用
SQL
Server 2005的XML特性 12.5 通过SElECT...FOR XML从
SQL
Server 2000中获取XML数据 12.6
SQL
XML.NET数据提供程序 12.7 简单的AD0.NET和XML示例 12.8 常见问题 第Ⅳ部分 用ADO.NET 2.O构造高效的应用程序 第13章 生成基于WindOWS的高效应用程序 13.1 用数据绑定快速生成用户界面 13.2 应用程序设计的考虑事项 第14章 生成高效的Web应用程序 14.1 Web应用程序简介 14.2 连接到数据库 14.3 在ASP.NET 1.0中与数据库进行交互时存在的问题 14.4 数据源控件简介 14.5 缓存往返的数据 14.6 分页 14.7 常见问题 第15章
SQL
Server2005公共语言运行时集成 15.1 扩展
SQL
Server的旧方法——扩展存储过程 15.2 扩展
SQL
Server的新方法——CLR集成 15.3 使用Microsoft Visual Studio 2005简化
SQL
CLR代码的生成过程 15.4
SQL
CLR方案 15.5 创建
SQL
CLR用户定义类型 15.6 小结 15.7 常见问题 第Ⅴ部分 附录 附录A 使用其他.NET数据提供程序 附录B 示例和工具
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章