今天看了使用Connection对象连接数据库,首先在SQLsever2005中附加了一个数据库MDF文件,然后在Visual studio中输入了以下SQLconnection代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace CloseSQL
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection conn; //声明一个SqlConnection对象
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "") //判断是否输入数据库名称
{
MessageBox.Show("请输入数据库名称"); //如果没有输入则弹出提示
}
else //否则
{
try //调用try…catch语句
{
//建立连接数据库字符串
string str = "server=.;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=";
conn = new SqlConnection(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…catch语句
{
conn.Dispose(); //使用Dispose方法关闭连接
conn.Open(); //重新使用Open方法打开会出现异常
}
catch (Exception ex)
{
richTextBox1.Text = ex.Message; //将异常显示在richTextBox1控件中
}
}
}
}
结果输入数据库名,总是提示连接失败,问题出在此行代码 string str = "server=.;database=" + textBox1.Text.Trim() + ";uid=sa;pwd="; 这里的pwd 都是SQL中建立的sa用户的密码,由于我所使用的sa用户密码是123456,所以应改为pwd=123456 ,这样就OK了。
转自:http://blog.sina.com.cn/s/blog_6d007af80100nl6f.html