连接不适用于视觉工作室中的 localdb
Connection not working with localdb in visual studios
很抱歉问这个问题,我知道还有很多其他问题,并尝试使用提供的解决方案,但我就是无法让我的代码正常工作。感谢观看!
属性中显示的连接字符串:
Data
Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\Jacob\Documents\Visual
Studio
2013\Projects\WindowsFormsApplication2\WindowsFormsApplication2\ChatDB.mdf";Integrated
Security=True
app.config 中的连接字符串:
Data
Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\ChatDB.mdf;Integrated
Security=True
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.");
}
}
}
}
再次感谢您的观看
问题出在您的 SQL 查询上,因为您使用了 Reserved Keywords
尝试将您的 table 名称更改为 tblUser
。
我还建议使用参数化查询来防止将来的 SQL 注入:(例如)
@"INSERT INTO [User] (Name,Password) VALUES (@Name, @Password);"
很抱歉问这个问题,我知道还有很多其他问题,并尝试使用提供的解决方案,但我就是无法让我的代码正常工作。感谢观看!
属性中显示的连接字符串:
Data Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\Jacob\Documents\Visual Studio 2013\Projects\WindowsFormsApplication2\WindowsFormsApplication2\ChatDB.mdf";Integrated Security=True
app.config 中的连接字符串:
Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\ChatDB.mdf;Integrated Security=True
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.");
}
}
}
}
再次感谢您的观看
问题出在您的 SQL 查询上,因为您使用了 Reserved Keywords
尝试将您的 table 名称更改为 tblUser
。
我还建议使用参数化查询来防止将来的 SQL 注入:(例如)
@"INSERT INTO [User] (Name,Password) VALUES (@Name, @Password);"