ADO.net学习记录 (一)

数据的规范化:是把数据尽可能的分解到多个表上,最小化重复相同数据的次数。

ADO.net的主要对象元素:

数据源:通常指的是一个关系数据库,如SQLserver等
托管的数据供应程序:提供数据仓库通信的功能 如ODBC等
Connection对象:建立一个页面程序与数据库驱动的通信管道
Command对象:一个包含读写数据指令的工具
DataReader/DataSet对象:存储已读出或写入数据的地方
.Net控件:主要指

 1<asp:datagrid>
 2
 3Connection对象:主要用于连接数据源   
 4通过Open()方法打开连接字符串中的连接   
 5连接字符串包含3各部分的信息:   
 6&gt;&gt; 第一部分指定要使用的供应程序或驱动程序的种类 //server=localhost   
 7&gt;&gt; 第二部分指定要使用的数据库 //database=Mydatabase   
 8&gt;&gt; 第三部分通常包含安全信息,包括用户名,密码等 //uid=foolboy;pwd=Mypasswd   
 9  
10Command对象和DataReader:读取和修改数据   
11Command用法:   
12objCommand = new OleDbCommand(strSQL,objConnection);   
13objDbDataReader = objCommand.ExecuteReader();   
14DataReader:存储数据   
15读取方法 DataReader["FIELD"]   
16  
17数据绑定:   
18是在数据源和数据使用者创建一个连接的过程。   
19主要是指绑定到DataGrid上   
20DataReader的局限:   
21&gt;&gt; 只能读取数据,不能修改数据   
22&gt;&gt; 只能向前循环数据   
23&gt;&gt; 只能处理一个表的数据   
24DataSet是他的替代品还是DataTable??他们的主要区别?   
25  
26  
27DataSet和DataTable对象   
28DataSet表示数据库中的数据,与DataReader不同它可以存储几个表和他们之间的关系。   
29在使用表示主要要用到下面4各对象:   
30&gt;&gt; DataTable: 表示表本身   
31&gt;&gt; DataSet: 核心对象,建立多表之间的adhoc关系,可以一表中的一行和另一表的一行关联起来   
32&gt;&gt; DataAdapter: 用于结果从Connection传给Dataset。Fill()方法把数据拷贝到DataSet中, Update()方法把DataSet中的数据烤回数据源。   
33&gt;&gt; DataView: 表示DataSet中存储的DataTables的特定视图   
34&gt;&gt; DataGrid: 等的DataSource最终只绑定到某具体DataView上   
35  
36ADO.net关于SQL Server的对象   
37sqlConnection   
38sqlCommand   
39sqlDataAdapter 
40
41数据异常处理 
42
43常见问题:   
44&gt;&gt; 代码包含对不存在的ADO.NET对象的引用   
45&gt;&gt; 代码请求的数据为NULL不存在   
46&gt;&gt; 代码的连接字符串错误   
47&gt;&gt; 包含不存在的列或表的引用   
48&gt;&gt; 没有提供正确的UserID和Password   
49&gt;&gt; 代码是用语法不正确的SQl语句   
50&gt;&gt; 网络问题导致数据库连接问题   
51  
52处理方法:   
53利用 try ....catch 捕获错误信息 
54
55更新数据方法 
56
57问题:   
58&gt;&gt; 如何更新?我们的修改都是基于断开连接的,如果将修改后的结果写入数据库中?   
59&gt;&gt; 如何处理同步更新?两个人先后对更新了同一数据,怎么办?结果会被覆盖么? 
60
61DataSet &amp; DataTable &amp; DataRow关系如下所示:   
62\--------------------------------------   
63| DataSet |   
64| |-------------------------| |   
65| | DataTable | |   
66| | | |   
67| | |----------------| | |   
68| | | DataRow | | |   
69| | |----------------| | |   
70| | | DataRow | | |   
71| | |----------------| | |   
72| |-------------------------| |   
73|------------------------------------|   
74  
75DataTable = DataSet.Tables["TName"];   
76DataRow = DataTable.Rows;   
77string strFirstName = DataRow[0]["FirstName"]; 
78
79这里的更新的实质都是对数据集DataSet的更新方法,没有涉及到对数据源的更新   
80更新操作思路:   
811.添加记录 (添加行)   
82添加记录首先需要声明两个变量 DataTable ,DataRow   
83其中DataTable需要实例化到具体的数据集中的某个table   
84DataRow = DataTable.NewRow() 声明为Table的新Row   
85再对DataRow进行赋值,调用DataTable.Rows.Add(DataRow)即可   
862.修改纪录 (编辑行)   
87首先声明一个变量 DataRow[] objRows用来存储要编辑的行   
88objRows = DataTable.Select("查询条件");   
89如果是一行,可以这样 objRows = DataTable.Rows[3];   
90再对其进行修改 如 objRows[0][FIELD1]="" objRows[0][FIELD2]=""   
913.删除纪录   
92如下 DataTable.Rows[5].Delete();   
93推想:应该可以这样,首先申明一个变量 DataRow[] objRows 用来存储要删除的行   
94objRows = DataTable.Select("查询条件");</asp:datagrid>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus