2015-04-21 91 views
0

对不起,问这个问题我知道还有很多其他问题,并试图使用提供的解决方案,但我无法让我的代码工作。感谢您的期待!如在属性所示连接与视觉工作室中的localdb不兼容

连接字符串:

数据 源=(的LocalDB)\ V11.0; AttachDbFilename =“C:\用户\雅各布\文档\ Visual Studio中 \项目\ WindowsFormsApplication2 \ WindowsFormsApplication2 \ ChatDB.mdf“;在app.config中集成 安全=真

连接字符串:

数据 源=(的LocalDB)\ 11.0; AttachDbFilename = | DataDirectory目录| \ ChatDB.mdf;集成 安全=真

Error: An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll 
Additional information: Incorrect syntax near the keyword 'User'. 

代码:

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; 
//NC-1 More namespaces. 
using System.Data.SqlClient; 
using System.Configuration; 

namespace WindowsFormsApplication2 
{ 
    public partial class SignUp : Form 
    { 
     string connstr = ConfigurationManager.ConnectionStrings["WindowsFormsApplication2.Properties.Settings.ChatDBConnectionString"].ToString(); 

     public SignUp() 
     { 
      InitializeComponent(); 
     } 

     private void label1_Click(object sender, EventArgs e) 
     { 

     } 

     private void SubmitBtn_Click(object sender, EventArgs e) 
     { 
      string Name = NameText.Text; 
      string Pwd = PwdText.Text; 
      //make sure they have entered text 
      if (Name.Length > 0 && Pwd.Length > 0) 
      { 
       SqlConnection conn = new SqlConnection(connstr); 

       //NC-10 try-catch-finally 
       try 
       { 
        //NC-11 Open the connection. 
        conn.Open(); 

        SqlCommand insert = new SqlCommand(); 
        insert.Connection = conn; 
        insert.CommandText = "INSERT INTO [User] (Name,Password) VALUES ('" + Name + "','" + Pwd + "')"; 

        insert.ExecuteNonQuery(); 
        MessageBox.Show("Congrats!!!"); 

       } 
       catch 
       { 
        //NC-14 A simple catch. 

        MessageBox.Show("User was not returned. Account could not be created."); 
       } 
       finally 
       { 
        //NC-15 Close the connection. 
        conn.Close(); 
       } 
      } 
      //if no text make them enter 
      else 
      { 
       MessageBox.Show("Please enter Text in both fields."); 
      } 
     } 
    } 
} 

再次感谢你寻找。

+0

检查你的SQL查询。 –

+0

如果你在保留关键字“User”的周围没有方括号,我会期待这个错误。你的查询看起来对我有效。仔细检查异常和堆栈跟踪 - 确保它指向上面发布的代码(而不是其他查询)。 –

+0

格兰特温尼很不幸,这是解决方案中唯一的查询,我刚开始使用visual studio和c#。 – tnyN

回答

1

的问题是你的SQL查询,因为您使用Reserved Keywords

试图将表名称更改为tblUser

我也建议使用参数化查询,以防止未来的SQL注入:(例如)

@"INSERT INTO [User] (Name,Password) VALUES (@Name, @Password);" 
+0

[应该没关系。方括号否定保留关键字。](http://stackoverflow.com/questions/52898/what-is-the-use-of-the-square-brackets-in-sql-statements) –

+0

我正要尝试那实际上,改变我的意思,我到底该怎么做?对不起,无知。 – tnyN

+0

@GrantWinney是的,我知道,但我知道这会导致错误的唯一原因是保留关键字。 –