黑马程序员_ADO.NET基础

1. ADO.NET:是.net框架访问数据库的一种技术,c#要访问数据库就要用这门技术,简单的说,就是说怎么样和数据库交互(增 删 改 查)。

ADO .NET3.0 中用于存取和管理资料的两个主要元件是 .NET Framework 资料提供者DataSet。

 

2..NET Framework 资料提供者:一种明确设计用于管理资料以及快速存取顺向只读资料的元件。它的用途是连接资料库、执行命令和撷取结果。这些结果会直接处理、放入 DataSet 中以便视需要而公开给使用者、与多个来源的资料结合,或在各层之间进行远端控制。.NET Framework 资料提供者是轻量型的,可在资料来源与程式码之间建立最小层,以提升效能而不会牺牲功能。

.NET Framework 资料提供者的核心对象:

(1)Connection:连接和断开数据源。

(2)Command:代表SQL查询语句活着存储过程名,同样提供了相关数据读取器对象的访问。

(3)DataReader:提供只读只向前形式的数据访问。

(4)DataAdapter:在数据库和调用者之间传递DataSet,内置4个命令对象来实现数据的查询、插入、修改和删除操作。

 

3.DataSet: 可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。

三大特性: (1) 独立性。DataSet独立于各种数据源。

               (2) 离线(断开)和连接。

               (3) DataSet对象是可以用XML形式表示的数据视图,是一种数据关系视图。

使用方法: (1) 把数据库中的数据通过DataAdapter对象填充DataSet。

               (2) 通过DataAdapter对象操作DataSet实现更新数据库。

               (3) 把XML数据流或文本加载到DataSet。

 

4.自己编写的SqlHelper

(1)首先在项目中添加一个应用配置文件,起名为App.config.(注意,系统给的名是App1.config,有错误,连接不到数据库,改为App.config后才能正常运行)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="dbConnStr" connectionString="Data Source=.;Initial Catalog=MyTest;User Id=sa;Password=123;"/>
  </connectionStrings>
</configuration>

(2)然后在项目中添加一个类,叫做SqlHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace _05.自己编写SqlHelper
{
    class SqlHelper
    {
        private static string connStr =ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;
        public static int ExecuteNonQurey(string sql,SqlParameter[] parameters)//把不变的内容写在封装函数里面,把变化的部分通过参数传进来。
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();//ExecuteNonQuery影响行的数据,删除3行就返回3,更新5行返回5.
                }
            }
        }

        public static object ExecuteScalar(string sql,SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteScalar();
                }
            }
        }

        public static DataSet ExecuteDataSet(string sql,SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    DataSet dataset = new DataSet();
                    adapter.Fill(dataset);
                    return dataset;
                }
            }
        }
    }
}

(3)在主函数中就可以调用SqlHelper来连接数据库:
SqlHelper.ExecuteNonQurey();

SqlHelper.ExecuteScalar();

DataSet ds= SqlHelper.ExecuteDataSet();

以上三种语句就是调用SqlHelper的不同方法。

posted @ 2014-04-02 15:05  雨亭天亮  阅读(146)  评论(0)    收藏  举报