Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593497
  • 博文数量: 805
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 5000
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-17 14:22
文章分类

全部博文(805)

文章存档

2011年(1)

2008年(804)

我的朋友

分类:

2008-10-17 14:24:30


  数据的规范化:是把数据尽可能的分解到多个表上,最小化重复相同数据的次数。
  
  ADO.net的主要对象元素:
  数据源:通常指的是一个关系数据库,如SQLserver等
  托管的数据供应程序:提供数据仓库通信的功能 如ODBC等
  Connection对象:建立一个页面程序与数据库驱动的通信管道
  Command对象:一个包含读写数据指令的工具
  DataReader/DataSet对象:已读出或写入数据的地方
  控件:主要指< asp:datagrid>
  Connection对象:主要用于连接数据源
  通过Open()方法打开连接字符串中的连接
  连接字符串包含3各部分的信息:
  >> 第一部分指定要使用的供应程序或驱动程序的种类 //server=localhost
  >> 第二部分指定要使用的数据库   //database=Mydatabase
  >> 第三部分通常包含信息,包括用户名,密码等 //uid=foolboy;pwd=Mypasswd
  
  Command对象和DataReader:读取和修改数据
  Command用法:
  objCommand = new OleDbCommand(strSQL,objConnection);
  objDbDataReader = objCommand.ExecuteReader();
  DataReader:数据
  读取方法 DataReader["FIELD"]
  
  数据绑定:
  是在数据源和数据使用者创建一个连接的过程。
  主要是指绑定到DataGrid上
  DataReader的局限:
  >> 只能读取数据,不能修改数据
  >> 只能向前循环数据
  >> 只能处理一个表的数据
  DataSet是他的替代品还是DataTable??他们的主要区别?
  
  DataSet和DataTable对象
  DataSet表示数据库中的数据,与DataReader不同它可以存储几个表和他们之间的关系。
  在使用表示主要要用到下面4各对象:
  >> DataTable: 表示表本身
  >> DataSet: 核心对象,建立多表之间的adhoc关系,可以一表中的一行和另一表的一行关联起来
  >> DataAdapter: 用于结果从Connection传给Dataset。Fill()方法把数据拷贝到DataSet中, Update()方法把DataSet中的数据烤回数据源。
  >> DataView: 表示DataSet中存储的DataTables的特定视图
  >> DataGrid: 等的DataSource最终只绑定到某具体DataView上
  
  ADO.net关于SQL Server的对象
  sqlConnection
  sqlCommand
  sqlDataAdapter
  
  数据异常处理
  常见问题:
  >> 代码包含对不存在的ADO.NET对象的引用
  >> 代码请求的数据为NULL不存在
  >> 代码的连接字符串错误
  >> 包含不存在的列或表的引用
  >> 没有提供正确的UserID和Password
  >> 代码是用语法不正确的SQl语句
  >> 网络问题导致数据库连接问题
  
  处理方法:
  利用 try ....catch 捕获错误信息
  
  更新数据方法
  问题:
  >> 如何更新?我们的修改都是基于断开连接的,如果将修改后的结果写入数据库中?
  >> 如何处理同步更新?两个人先后对更新了同一数据,怎么办?结果会被覆盖么?
  
  DataSet & DataTable & DataRow关系如下所示:
  
      --------------------------------------
   |      DataSet         |
   |   |-------------------------|  |
   |   |   DataTable      |  |
   |   |             |  |
    |   |   |----------------| |  |
   |   |   |  DataRow   | |  |
   |   |   |----------------| |  |
   |   |   |  DataRow   | |  |
   |   |   |----------------| |  |
      |   |-------------------------|  |
   |------------------------------------|
               
  DataTable = DataSet.Tables["TName"];
  DataRow = DataTable.Rows;
  string strFirstName = DataRow[0]["FirstName"];
  
  这里的更新的实质都是对数据集DataSet的更新方法,没有涉及到对数据源的更新
  更新操作思路:
  1.添加记录 (添加行)
  添加记录首先需要声明两个变量 DataTable ,DataRow
  其中DataTable需要实例化到具体的数据集中的某个table
  DataRow = DataTable.NewRow() 声明为Table的新Row
  再对DataRow进行赋值,调用DataTable.Rows.Add(DataRow)即可
  2.修改纪录 (编辑行)
  首先声明一个变量 DataRow[] objRows用来存储要编辑的行
  objRows = DataTable.Select("查询条件");
  如果是一行,可以这样 objRows = DataTable.Rows[3];
  再对其进行修改 如 objRows[0][FIELD1]="" objRows[0][FIELD2]=""
  3.删除纪录
  如下 DataTable.Rows[5].Delete();
  推想:应该可以这样,首先申明一个变量 DataRow[] objRows 用来存储要删除的行
  objRows = DataTable.Select("查询条件");
【责编:admin】

--------------------next---------------------

阅读(500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~