ExecuteNonQuery:附近的语法不正确

时间:2015-12-07 11:36:38

标签: c# sql-server

我收到以下错误,我一直试图弄清楚问题是几周但没有,有人可以帮忙吗?

  

'System.Data.SqlClient.SqlException'

中出现 System.Data.dll 类型的未处理异常      

其他信息: '/' 附近的语法不正确。

这是代码

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 WindowsFormsApplication4
{
    public partial class Add_Position : Form
    {
    SqlCommand cmd;
    SqlConnection con;
    SqlDataAdapter da;

    public Add_Position()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'position_ListDataSet.Table' table. You can move, or remove it, as needed.
        this.tableTableAdapter.Fill(this.position_ListDataSet.Table);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        con=new SqlConnection(@"Data Source=sqlserver;Initial Catalog=Position_List;Integrated Security=False;User ID=administrator;Password=;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
        con.Open();
        cmd = new SqlCommand("INSERT INTO Table (Name, Dwt, Built, Position, Area, L/C from, L/C to, Contact) Values (@Name, @Dwt, @Built, @Position, @Area, @L/C from, @L/C to, @Contact)", con);
        cmd.Parameters.Add("@Name", nametxt.Text);
        cmd.Parameters.Add("@Dwt", dwttxt.Text);
        cmd.Parameters.Add("@Built", builttxt.Text);
        cmd.Parameters.Add("@Position", postxt.Text);
        cmd.Parameters.Add("@Area", areatxt.Text);
        cmd.Parameters.Add("@L/C from", lcftxt.Text);
        cmd.Parameters.Add("@L/C to", lcttxt.Text);
        cmd.Parameters.Add("@Contact", contxt.Text);
        cmd.ExecuteNonQuery();
    }
}

由于

2 个答案:

答案 0 :(得分:0)

请更改数据库L/C from to LC_FromL/C T0 = LC_To中的列名 我事,那我就不会有任何错误。

    private void button1_Click(object sender, EventArgs e)
        {
            con=new SqlConnection(@"Data Source=sqlserver;Initial Catalog=Position_List;Integrated Security=False;User ID=administrator;Password=;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
            con.Open();
            cmd = new SqlCommand("INSERT INTO Table (Name, Dwt, Built, Position, Area, LC_from, LC_to, Contact) Values (@Name, @Dwt, @Built, @Position, @Area, @LC_from, @LC_to, @Contact)", con);
            cmd.Parameters.Add("@Name", nametxt.Text);
            cmd.Parameters.Add("@Dwt", dwttxt.Text);
            cmd.Parameters.Add("@Built", builttxt.Text);
            cmd.Parameters.Add("@Position", postxt.Text);
            cmd.Parameters.Add("@Area", areatxt.Text);
            cmd.Parameters.Add("@LC_from", lcftxt.Text);
            cmd.Parameters.Add("@LC_to", lcttxt.Text);
            cmd.Parameters.Add("@Contact", contxt.Text);
            cmd.ExecuteNonQuery();
con.Close();
        }

答案 1 :(得分:0)

在评论和其他答案中提出建议,我还建议您使用/更改列名,因为它会给出更多意外的错误。虽然我可以提供另一个快速修复,即在SQL Server中,标识符可以使用方括号分隔,例如

SELECT [table/1] ...

在你的情况下,请尝试使用

 cmd = new SqlCommand("INSERT INTO Table (Name, Dwt, Built, Position, Area, [L/C from], [L/C to], Contact) Values (@Name, @Dwt, @Built, @Position, @Area, @L/C from, @L/C to, @Contact)", con);
        cmd.Parameters.Add("@Name", nametxt.Text);

希望这会有所帮助。