我正在尝试首次将C#应用程序连接到MDF数据库,我需要一点帮助..
我在Visual Studio 2010中创建了一个小型MDF数据库文件,然后创建了另一个项目并将该文件导入到项目中。
我没有尝试通过代码连接到MDF文件。这里是我正在使用的代码:
namespace DBtestApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
System.Data.SqlClient.SqlConnection con;
private void Form1_Load(object sender, EventArgs e)
{
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = "DataSource=.\\SQLEXPRESS; AttachDbFilename =SampleDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
con.Open();
MessageBox.Show("Connection opened");
con.Close();
MessageBox.Show("Connection closed");
}
}
}
当我运行应用程序时,我在定义连接字符串的行中得到一个异常,异常在堆栈顶部有此消息:
System.ArgumentException: Keyword not supported: 'datasource'.
有人能指出我正确的方向吗?
答案 0 :(得分:27)
在Data Source
con.ConnectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=c:\folder\SampleDatabase.mdf;
Integrated Security=True;
Connect Timeout=30;
User Instance=True";
答案 1 :(得分:10)
string sqlCon = @"Data Source=.\SQLEXPRESS;" +
@"AttachDbFilename=|DataDirectory|\SampleDB.mdf;
Integrated Security=True;
Connect Timeout=30;
User Instance=True";
SqlConnection Con = new SqlConnection(sqlCon);
文件路径应该有 | DataDirectory | ,它实际上链接到“当前项目目录\ App_Data \”或“当前项目目录”并获取.mdf文件.....放置.mdf在这些地方中的任何一个,并且应该在visual studio 2010中工作。当你在生产系统上使用独立应用程序时,那么可执行文件所在的当前路径应该有.mdf文件。
答案 2 :(得分:9)
转到服务器资源管理器>您的数据库>右键单击>属性> ConnectionString并复制连接字符串并将复制的内容复制到connectiongstring代码:)
答案 3 :(得分:5)
对于Visual Studio 2015,连接字符串为:
"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True"
答案 4 :(得分:1)
Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;
答案 5 :(得分:0)
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Samples\MyApp\C#\bin\Debug\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
这对我有用......有没有办法缩短路径?像
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=\bin\Debug\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
答案 6 :(得分:0)
替代解决方案,您可以将数据库放在解决方案中所需的文件夹中。这对我有用:
.ConnectionString(@"Data Source=LocalDB)\MSSQLLocalDB;
AttachDbFilename="+AppDomain.CurrentDomain.BaseDirectory+"Folder1\\Folder2\\SampleDatabase.mdf" + ";
Integrated Security=True;")