原文书籍:《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("连接数据库失败"); //出现异常弹出提示
}
}
}
程序的运行效果如图所示:
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中
}
}
程序运行结果如图所示:
说明:在编写应用程序时,对数据库操作完成后,要及时关闭数据库的连接,以防止在对数据库进行其他操作时数据库被占用。