C# 连接数据库

01  Connection 对象概述

         Connection 对象是一个连接对象,主要功能是建立与物理数据库的连接,其主要包括4种访问数据库的对象类,也可称为数据提供程序,分别介绍如下。

         a76965991a802f313ba3ebdc2e9d18c9.png   SQL Server 数据提供程序,位于 System.Data SqlClient 命名空间。

         89d22976e284871ce86a9d98a5cc4e4a.png   ODBC 数据提供程序,位于 System.Data.Odbc 命名空间。

         3dec471743b69af77a6e47d39f5614ef.png   OLEDB 数据提供程序,位于 System.Data.OleD6 命名空间。

         fc7189d1ddcbdf3682e9e5e9b6d5f3b2.png   Oracle 数据提供程序,位于 System.Data.OracleClient 命名空间。

  说明

   根据使用数据库的不同,引入不同的命名空间,然后通过命令空间中的 Connection 对象连接类连接数据库。例如,连接SQL Server 数据库,首先要通过using System.Data.SqlClient 命令引用SQL Server 数据提供程序,然后才能调用空间下的SqlConnection 类连接数据库。

02  连接数据库

     以 SQL Server 数据库为例,如果要连接 SQL Server 数据库,必须使用 System. Data.SqlClient命令空间下的 SqlConnection 类。所以首先要通过 using System.Data.SqlClient 命令引用命名空间,连接数据库之后,通过调用 SqlConnection 对象的 Open 方法打开数据库。通过 SqlConnection 对象的 State 属性判断数据库的连接状态。

      语法如下: 

        public override ConnectionState State{ get; }

        属性值:ConnectionState 枚举。

        ConnectionState 枚举的值及说明如表1 所示。

表1 ConnectionState 枚举的值及说明

de699ffcfc08741cfb71f6068b4fe030.png

       【例1】创建一个 Windows 应用程序,在窗体中添加一个TextBox 控件、一个 Button 控件和一个 Label 控件,分别用于输入要连接的数据库名称、执行连接数据库的操作及显示数据库的连楼状态。然后引入 System.Data.SqlClient 命名空间,使用 SqlConnection 类连接数据库。

     代码如下: 

private void button1_Click(object sender, EventArgs e)
{
     if(textBox1.Text =="")                                 //判断是否输入数据库名称 
     {
           MessageBox.Show("请输入要连接的数据库名称")        //弹出提示信息 
     }
     else                                                  //否则 
     {
           try                                            //调用 try...catch 适句 
           {
              //声明一个字符串,用于存储连接数据库字符串
              string ConStr = "server =.;database="+ textBox1.Text.Trim()+";uid=sa;pwd=";
              //创建一个 SqlConnection 对象
              SqlConnection conn = new SqlConnection(ConStr);
              conn.Open();                               //打开连接
              if(conn.State == ConnectionState.Open)     //判断当前连接的状态
 {
                   //显示状态信息
                   label2.Text = "数据库【"+textBox1.Text.Trim()+*】已经连接并打开";
              }
      }
      catch
      {
          MessageBox.Show("
      }
   }
}

03  关闭连接

        当对数据库操作完毕后,要关闭与数据库的连接,释放占用的资源,可以通过调用 SqlCnnection对象的 Close 方法或 Dispose 方法关闭与数据库的连接,这两种方法的主要区别是:Close用于关闭一个连接,而 Dispose 方法不仅关闭一个连接,而且还清理连接所占用的资源。当使用 Close方法关闭连接后,可以再调用 Open 方法打开连接,不会产生任何错误。而如果使用 Dispose 方法关闭连接。就不可以再次直接用 Open 方法打开连接,必须再次重新初始化连接再打开。

       【例1】 创建一个 Windows 应用程序,首先向窗体中添加一个TextBox 控件和一个 RichTextBox 控件,分别用于输入连接的数据库名称和显示连接信息及错误提示。然后再添加 3 个 Buton 控件,分期用于连接数据库、调用 Close 方法关闭连接,再调用 Open方法打开连接以及调用 Dispose 方法关闭并释放连接,然后调用 Open 方法打开连接。

      代码如下: 

SqlConnection conn;                                       //声明一个SqlConnection 对象 
private void button1_Click(object sender, EventArgs e)
{
     if(textBox1.Test =="")                              //判断是否输入数据库名称 
     {
          MessageBox.Show("请输入数据库名称") ;        //如果没有输入则弹出提示 
     }
     else                                               //否则 
     {
          try                                          //调用 try...catch 语句
          {
              //建立连接数据库字符串
              string str = "server=,;database=" + textBox1.Text.Trim() + ";uid=sa;pwd";
              conn = new SqlConnecion(str);            //创建一个 SqlConnection 对象 
              conn.Open();                             //打开连接 
              if(conn.State == ConnectionState.Open)   //判断当前连接状态 
              {
                   MessageBox.Show("连接成功”)         //弹出提示 
              }
          }
          catch(Exception ex)
          {
             MessageBox.Show(ex.Message);                  //出现异常弹出错误信息 
             textBox1.Text = "";                           //清空文本框 
          }
     }
}
private void button2_Click(object sender, EventArgs e)
{
    try                                               //调用 try...catch 语句
    {
        string str="";                                //声明一个字母串变量
        conn.Close();                                 //使用 Close 方法关闭连接
        if(conn.State == ConnectionState.Closed)      //判断当前连接是否关闭
        {
             str="数据库已经成功关闭\n”:                  //如果关闭则弹出提示 
        }
        conn.Open();                                //重新打开连接
        if(conn.State == ConnectionState.Open)      //判断连接是否打开
        {
             str += "数据库已经成功打开\n";        //弹出提示 
        }
        richTextBox1.Text = str;                   //向 richTextBox1 中添加提示信息 
   }
   catch(Exception ex)
   {
        richTextBox1.Text = ex.Message;          //出现异常,将异常添加到 richTextBox1中
   } 
}
private void button3_Click(object sender,EventArgs e)
{
    try                                          //调用 try...cstch 语句
    {
         conn.Dispose();                        //使用 Dispose 方法关闭连接 
         conn.Open();                           //重新使用 Open 方法打开会出现异常 
    }
    catch(Exception ex)
    {
        richTextBox1.Text = ex.Message;        //将异常显示在 richTextBox1 控件中
    }
}

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

说明

        在编写应用程序时,对数据库操作完成后,要及时关闭数据库的链接,以防止在对数据库进行其他操作时数据库被占用。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值