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编程大全    

说明

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

C#中连接MySQL数据库可以使用MySql.Data.MySqlClient命名空间提供的类和方法。引用\[1\]中给出了两种连接MySQL数据库的方法。第一种方法是通过创建MySqlConnection对象并设置连接字符串来连接数据库。在这个方法中,需要提供MySQL服务器的地址、用户名、密码和数据库名称。然后调用Open方法打开连接。如果连接成功,返回一个MySqlConnection对象。如果连接失败,返回null。第二种方法是通过调用ConnectMySql方法来连接数据库。这个方法内部也是使用了MySqlConnection对象和连接字符串来连接数据库。如果连接成功,返回true。如果连接失败,返回false。引用\[2\]中给出了一个使用DataGridView控件显示MySQL数据库表中数据的示例。在这个示例中,首先需要创建一个MySqlConnectionStringBuilder对象,并设置连接字符串的相关属性。然后创建一个MySqlConnection对象,并使用连接字符串来初始化它。接下来,可以使用DataGridView控件来显示数据库表中的数据。通过设置DataGridView的DataSource属性和DataMember属性,将数据绑定到DataGridView上。引用\[3\]中给出了一个向数据库中添加数据的示例。在这个示例中,首先需要编写一个SQL查询语句,然后创建一个MySqlDataAdapter对象,并使用查询语句和MySqlConnection对象来初始化它。接下来,创建一个DataSet对象,并使用MySqlDataAdapter的Fill方法将查询结果填充到DataSet中。最后,将DataSet中的数据绑定到DataGridView上,以显示数据库表中的数据。总结起来,连接MySQL数据库可以使用MySql.Data.MySqlClient命名空间提供的类和方法,通过创建MySqlConnection对象并设置连接字符串来连接数据库,使用DataGridView控件显示数据库表中的数据,使用MySqlDataAdapter对象执行SQL查询语句并将结果填充到DataSet中,然后将DataSet中的数据绑定到DataGridView上。 #### 引用[.reference_title] - *1* [C#连接数据库以及获取数据库的数据](https://blog.csdn.net/m0_66658022/article/details/127265827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C#连接数据库](https://blog.csdn.net/m0_65579857/article/details/125011733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值