2016-09-15 157 views
0

我试图将信息保存到我创建的本地sqldatabase以接受进程的丢失事件。然而,我现在的问题不是关于代码的错误消息,而是关于数据库本身,我认为。错误消息框中说:“尝试为文件C:[数据库文件位置]附加一个自动命名的数据库失败。具有相同名称的数据库存在,或者指定的文件无法打开,或者它位于UNC共享中“。 我看了其他地方,但没有直接关系到我的问题/或工作。 现在拉出我的头发!提前致谢。无法将信息保存到数据库 - UNC共享问题?

我的代码是:

private void button1_Click(object sender, EventArgs e) 
     { 

string constring = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=c: \\users\\user\\documents\\visual studio 2015\\Projects\\LossApplication\\LossApplication\\LossDB.mdf;Integrated Security=True; "; 

      string query=" insert into LossDB.LossTable (lossid,Equipment, Event, responsinility, start) values(@lossid, @equipment, @Cause, @reason, @start) ;"; 

      SqlConnection conLossDB = new SqlConnection(constring); 
      SqlCommand cmdLossDB = new SqlCommand(query, conLossDB); 
      cmdLossDB.Parameters.AddWithValue("@lossid", textBox1.Text); 
      cmdLossDB.Parameters.AddWithValue("@Equipment", comboBox1.Text); 
      cmdLossDB.Parameters.AddWithValue("@Cause", comboBox2.Text); 
      cmdLossDB.Parameters.AddWithValue("@Reason", comboBox3.Text); 
      cmdLossDB.Parameters.AddWithValue("@start", dateTimePicker1.Text); 

      SqlDataReader myReader; 
      try 
      { 
       conLossDB.Open(); 
       myReader = cmdLossDB.ExecuteReader(); 
       MessageBox.Show("Loss Entry Saved"); 
       conLossDB.Close(); 
       while (myReader.Read()) 
       { 

       } 
      }catch(Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

回答

0

在您的连接字符串,请使用初始目录,而不是AttachDbFilename

string constring = "Data Source=(LocalDB)\MSSQLLocalDB; 
Initial Catalog = c: \users\user\documents\visual studio 2015\Projects\LossApplication\LossApplication\LossDB.mdf; 
Integrated Security=True; "; 

即使我面对这个问题,上面的代码解析。

+0

谢谢你的工作! 但现在我得到一个登录问题,这是通过在连接字符串的末尾添加用户名密码来排序? – Loplac92

+0

如果解决此问题,将其标记为答案。对于登录问题,如果您的数据库仅通过凭据访问,则必须提供用户标识和密码。 –