Как подключиться к файлу базы данных MDF?
Я экспериментирую в подключении приложения С# к базе данных MDF в первый раз, и мне нужна небольшая помощь.
Я создал небольшой файл базы данных MDF в Visual Studio 2010, затем создал другой проект и импортировал файл в сам проект.
Я не пытаюсь подключиться к файлу 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'.
Может ли кто-нибудь указать мне в правильном направлении?
Ответы
Ответ 1
Добавьте пробел между Data Source
con.ConnectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=c:\folder\SampleDatabase.mdf;
Integrated Security=True;
Connect Timeout=30;
User Instance=True";
Ответ 2
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.
Ответ 3
Перейдите в проводник серверa > Ваша база данных > Щелкните правой кнопкой мыши > свойствa > ConnectionString и скопируйте строку подключения и скопируйте ее в код соединительной строки:)
Ответ 4
Для Visual Studio 2015 строка подключения:
"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True"
Ответ 5
Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;
Ответ 6
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");
Ответ 7
Альтернативное решение, в котором вы можете иметь базу данных в нужную папку внутри решения. Это сработало для меня:
.ConnectionString(@"Data Source=LocalDB)\MSSQLLocalDB;
AttachDbFilename="+AppDomain.CurrentDomain.BaseDirectory+"Folder1\\Folder2\\SampleDatabase.mdf" + ";
Integrated Security=True;")