SQL Server基础教程(七) C#实现连接数据库:主要分为配置并加载App.config文件、创建数据工厂对象、创建连接对象、创建命令对象、创建读取器对象几个步骤。

第一章、简介

 1、关于学习C#如何连接数据库或断开连接数据(断开连接数据库往后我将讨论),我是按照这本书一点一点学习的:

       现在,终于用到了数据库,于是,学习如何去连接数据库。我们主要讨论21.7/21.8/21.9小结,其他部分用到的话,我会重点阐述。

 2、 好了,关于如何建立数据库,我在21.6小结中已经建立了Autolot数据库。这里不过多地讨论如何建立数据库及数据表。详情请参考链接: https://blog.csdn.net/xpj8888/article/details/85985592

3、那么最后,我们将逐步地展开。如图所示,我细分为下面几个步骤:

第二章、配置App.config文件

数据库的连接,不是非得配置App.config文件。你也可以直接在Main函数里面直接连接。App.config文件的好处是它的灵活性。

App.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  
  <!--方法1:直接在appSettings节点内定了服务器和数据库的连接-->
  <appSettings>
    <!--连接SQLServer数据库-->
    <add key="provider" value="System.Data.SqlClient"/>
    <!--(localdb)\MSSQLLocalDB   表示本地服务器-->
    <!--E:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL14.MSSQLSERVER\MSSQL\DATA\MYSQL_LIBRARY\AUTOLOT.MDF   表示表示加载的数据库-->
    <add key="cnStr" value="Data Source = (localdb)\MSSQLLocalDB; Initial Catalog = E:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL14.MSSQLSERVER\MSSQL\DATA\MYSQL_LIBRARY\AUTOLOT.MDF; Integrated Security = True"/>
  </appSettings>
 
    <!--方法2:在appSettings节点内定了服务器的连接、在connectionStrings定义数据库的连接。该方法的好处是,你可以动态连接需要连接的数据库-->
  
    <connectionStrings>
      <add name="AutoLotSqlProvider" connectionString="Data Source = (localdb)\MSSQLLocalDB; Integrated Security = SSPI; Initial Catalog = E:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL14.MSSQLSERVER\MSSQL\DATA\MYSQL_LIBRARY\AUTOLOT.MDF"/>
      <add name="AutoLotOleDbProvider" connectionString="Data Source = (localdb)\MSSQLLocalDB; Integrated Security = SSPI; Initial Catalog = E:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL14.MSSQLSERVER\MSSQL\DATA\MYSQL_LIBRARY\AUTOLOT.MDF"/>    
</connectionStrings>
</configuration>

使用配置文件配置数据库的好处是,你可以随意切换连接哪种类型数据,比如连接"System.Data.OleDb数据,那么你只需要更改下面的一行代码即可:

<add key="provider" value="System.Data.OleDb"/>

第三章、加载App.config文件

  • 节点provider,表示数据库 类型 System.Data.SqlClient 。
  • 节点 cnStr ,表示数据库 文件 AUTOLOT.MDF 。
#region  *******步骤1:加载配置文件*******
//数据提供者:实际上就是要连接SQLServer数据库
string strDataProvider = ConfigurationManager.AppSettings["provider"];
//连接SQLServer数据库的名字
string strConnectStr = ConfigurationManager.AppSettings["cnStr"];
#endregion

第四章、创建数据提供搬运工厂的对象

该对象就是为了拿 AUTOLOT.MDF 的数据出来,相当于搬运者。

#region *******步骤2:创建数据提供搬运工厂的对象*******
//数据搬运的中介,将数据库的数据搬运到C#主程序,所以它有一个专业的名字叫:数据提供程序工厂
DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(strDataProvider);
#endregion

第五章、创建连接对象并配置连接对象、打开连接对象

#region *******步骤3:连接对象*******
//创建连接对象
using (DbConnection dbConnection = dbProviderFactory.CreateConnection())
 {
                
    //配置连接对象
    dbConnection.ConnectionString = strConnectStr;
    //打开连接对象
    dbConnection.Open();
    #endregion
}

第六章、创建命令对象并配置命令对象

#region *******步骤4:命令对象*******
//创建命令对象
DbCommand dbCommand = dbProviderFactory.CreateCommand();
Console.WriteLine("dbCommand.GetType().Name = ", dbCommand.GetType().Name);
//配置命令对象
dbCommand.Connection = dbConnection;                  //命令对象需要连接的实体。
dbCommand.CommandText = "Select * From Inventory";    //命令对象运行的文本指令(即SQL语句)
#endregion

第七章、创建数据读取器对象,并输出本地服务器的数据库的数据表Inventory的内容

#region *******步骤5:数据读取器对象*******
//创建数据读取器对象
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
    Console.WriteLine("dbDataReader.GetType().Name = ", dbDataReader.GetType().Name);
    while (dbDataReader.Read())
    {
        Console.WriteLine("输出当前汽车数据表Inventory的汽车ID及其品牌");
        Console.WriteLine("CarID = {0}, Make = {1}", dbDataReader["CarID"],                     
        dbDataReader["Make"].ToString());
    }
}
#endregion

第八章、附录:附上C#控制台的所有代码及输出结果

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <appSettings>
    <!--连接SQLServer数据库-->
    <add key="provider" value="System.Data.SqlClient"/>
    
    <!--(localdb)\MSSQLLocalDB   表示本地服务器-->
    <!--E:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL14.MSSQLSERVER\MSSQL\DATA\MYSQL_LIBRARY\AUTOLOT.MDF   表示表示加载的数据库-->
    <add key="cnStr" value="Data Source = (localdb)\MSSQLLocalDB; Initial Catalog = E:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL14.MSSQLSERVER\MSSQL\DATA\MYSQL_LIBRARY\AUTOLOT.MDF; Integrated Security = True"/>
  </appSettings>
</configuration>

 Program.cs:

#region 连接数据库
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Messaging;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Xml.Linq;
using System.Configuration;  //ConfigurationManager类的命名空间
//using System.Data;
//using System.Data.SqlClient; 
using System.Data.Common;    //DbProviderFactory、DbProviderFactories、DbConnection、DbCommand、DbDataReader的命名空间
 
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("重要的事情说三遍:我要准备开始连接数据了,各位。然后打印一张数据表到控制台给大家look look ");
            Console.WriteLine("重要的事情说三遍:我要准备开始连接数据了,各位。然后打印一张数据表到控制台给大家look look ");
            Console.WriteLine("重要的事情说三遍:我要准备开始连接数据了,各位。然后打印一张数据表到控制台给大家look look ");
 
            #region  *******步骤1:加载配置文件*******
            //数据提供者:实际上就是要连接SQLServer数据库
            string strDataProvider = ConfigurationManager.AppSettings["provider"];
 
            /*连接SQLServer数据库的名字*/
            //方法1:连接App.config的appSettring节点
            string strConnectStr = ConfigurationManager.AppSettings["cnStr"];
            //方法2:连接App.config的ConnectionStrings节点的数据库
            string strConnectStr2 = ConfigurationManager.ConnectionStrings["AutoLotSqlProvider"].ConnectionString;
            #endregion
 
            #region *******步骤2:创建数据提供搬运工厂的对象*******
            //数据搬运的中介,将数据库的数据搬运到C#主程序,所以它有一个专业的名字叫:数据提供程序工厂
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(strDataProvider);
            #endregion
 
            #region *******步骤3:连接对象*******
            //创建连接对象
            using (DbConnection dbConnection = dbProviderFactory.CreateConnection())
            {
                //配置连接对象
                dbConnection.ConnectionString = strConnectStr;//方法2:strConnectStr2
                //打开连接对象
                dbConnection.Open();
                #endregion
 
                #region *******步骤4:命令对象*******
                //创建命令对象
                DbCommand dbCommand = dbProviderFactory.CreateCommand();
                Console.WriteLine("dbCommand.GetType().Name = " + dbCommand.GetType().Name);
                //配置命令对象
                dbCommand.Connection = dbConnection;                  //命令对象需要连接的实体。
                dbCommand.CommandText = "Select * From Inventory";    //命令对象运行的文本指令(即SQL语句)
                #endregion
 
                #region *******步骤5:数据读取器对象*******
                //创建数据读取器对象
                using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
                {
                    Console.WriteLine("dbDataReader.GetType().Name = " + dbDataReader.GetType().Name);
                    while (dbDataReader.Read())
                    {
                        //Console.WriteLine("输出当前汽车数据表Inventory的汽车ID及其品牌");
                        Console.WriteLine("CarID = {0}, Make = {1}", dbDataReader["CarID"], dbDataReader["Make"].ToString());
                    }
                }
                #endregion
            }
            Console.ReadLine();
        }
    }
}
#endregion

输出结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值