连接数据库:Connection对象(一)

原文书籍:《C#从入门到精通》

Connection对象是一个连接对象,主要功能是建立与物理数据库的连接。

1、连接数据库

引用命名空间 using System.Data.SqlClient

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

程序的运行效果如图所示:
连接数据库:Connection对象(一)_第1张图片

2、关闭连接

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

SqlConnection conn;                                     //声明一个SqlConnection对象
private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "")                            //判断是否输入数据库名称
    {
        MessageBox.Show("请输入要连接数据库名称");      //弹出提示信息
    }
    else                                                //否则
    {
        try
        {
            //声明一个字符串,用于存储连接数据库字符串
            string ConStr = "server=.;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=123";
            //创建一个SqlConnection对象
            conn = new SqlConnection(ConStr);
            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
    {
        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
    {
        conn.Dispose();                                     //使用Dispose方法关闭连接
        conn.Open();                                        //重新使用Open方法打开会出现异常
    }
    catch (Exception ex)
    {
        richTextBox1.Text = ex.Message;                     //出现异常,将异常添加到richTextBox1中
    }
}

程序运行结果如图所示:
连接数据库:Connection对象(一)_第2张图片 连接数据库:Connection对象(一)_第3张图片

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

你可能感兴趣的:(C#)