今天看了使用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