修改如下代码,链接到用OpenFileDialog打开的数据库:
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "数据|*.mdf";
if (dlg.ShowDialog() == DialogResult.OK)
{
fname = dlg.FileName;
textBox1.Text = fname;
}
string SqlStr = "Sever=(local);User Id=sa;Pwd=;DataBase=" + fname;
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
if (con.State == ConnectionState.Open)
{
MessageBox.Show("数据库连接成功");
}
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "数据|*.mdf";
if (dlg.ShowDialog() == DialogResult.OK)
{
fname = dlg.FileName;
textBox1.Text = fname;
}
string SqlStr = "Data Source=.\SQLEXPRESS;AttachDbFilename=" + fname + ";Integrated Security=True;User Instance=True";
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
if (con.State == ConnectionState.Open)
{
MessageBox.Show("数据库连接成功");
}
string SqlStr = string.Fomat("sever={0};uid=sa;pwd=sa;database={1}",保存服务器名字的变量,fname);
这个字符串要注意 你应该先看一下fname是否包含了后缀名,
你用的是什么数据库?!
如果你用的是SQL数据库,你利用OpenFileDialog所找到的是数据库物理文件,OpenFileDialog返回来的文件名也是包括路径的,而连接字符串中的DataBase指的是这个物理文件在SQL服务器中的数据库名,而不是它的物理文件名称。
如果你用的是Access数据库的话,你的连接字符串是错误的。请用蓝血郎 的连接字符串
mdf是SQL的数据库,他应该被附加到SQL Server服务器上后连接才会成功!
单纯的找到物理路径是没有效果的
连接字符串
openfiledialog打开的应该是oledb数据库吧
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=" + fname;