2016-08-24 6 views
0

Я просто пытаюсь создать и записать в файл базы данных.Строка подключения базы данных

Я не знаю, почему строка подключения получилась такая:

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User\Documents\DATA_TEST.mdf;Integrated Security=True;Connect Timeout=30 

С помощью этой строки соединения, я получаю эту ошибку:

Error CS1009 Unrecognized escape sequence
XXX_DATABASE_TEST D:\FOLDER\XXX_DATABASE_TEST\Form1.cs

Так что я изменил «/» до " \ ":

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:/Users/User/Documents/DATA_TEST.mdf;Integrated Security=True;Connect Timeout=30 

Ошибка исчезла, формирует нагрузки, но база данных пуста, не записывается. Можете ли вы помочь мне понять, что я делаю неправильно здесь:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Data.Sql; 
using System.Data.SqlClient; 

namespace XXX_DATABASE_TEST 
{ 
    public partial class Form1 : Form 
    { 
     SqlCommand cmd; 
     SqlConnection con; 
     SqlDataAdapter da; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      con = new SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User\Documents\DATA_TEST.mdf;Integrated Security=True;Connect Timeout=30"); 

      con.Open(); 

      cmd = new SqlCommand("INSERT INTO testdata VALUES (Name, IDo, Gender) VALUES (@Name,@IDo,@Gender)", con); 

      cmd.Parameters.Add("@Name", textBox1.Text); 
      cmd.Parameters.Add("@IDo", textBox1.Text); 
      cmd.Parameters.Add("@Gender", comboBox1.SelectedItem.ToString()); 

      cmd.ExecuteNonQuery(); 
     } 
    } 
} 
+0

Произошло ли событие нажатия кнопки? ExecuteNonQuery возвращает целое число для числа записей, которые были затронуты. Проверьте это значение. – LarsTech

+0

http://www.connectionstrings.com. Вам нужны котировки вокруг имени пути и обратно в обратную косую черту; Windows использует их. –

ответ

0

Я думаю, что ваша строка соединения должны быть такими:

con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\User\\Documents\\DATA_TEST.mdf;Integrated Security=True;Connect Timeout=30"); 

И localdb, вы можете сделать что-то подобное тоже:

con = new SqlConnection("Data Source = .;Initial Catalog = DATA_TEST;Integrated Security = True") 
Смежные вопросы