首页 > 解决方案 > 请告知如何解决“Ref”语法错误附近的sql逻辑错误

问题描述

 private void ExecuteQquery(string QueryData) 
    {
        SetConnectDB();
        sqlConn.Open();
        sqlCmd = sqlConn.CreateCommand();
        sqlCmd.CommandText = QueryData; 
        sqlCmd.ExecuteNonQuery();
        sqlCmd.Dispose();
        sqlConn.Close();
    }

sqlcmd commandtext = querydata 在我运行程序时似乎是一个问题。

private void btnAddField_Click(object sender, EventArgs e)
    {
        

        string QueryData = "Insert into details(Customer Ref, First Name, Last name, Address, Mobile, " + "Email, Gender, DOB, Nationality, Prove)"
                                + "values('" + btnCustomerReference.Text + "','" + btnFirstName.Text + "','" + btnLastName.Text + "','" +
                                btnAddress.Text + "','" + btnMobile.Text + "','" + btnEmail.Text + "','" + chkGender.Text + "','" + dateTimePicker1 +
                                "','" + chkNationality.Text + "','" + chkPOI.Text + "')";

       ExecuteQquery(QueryData);
       UpLoadData();
    }

错误指向 ExecuteQquery(QueryData)。我已经尝试了各种方法来解决但没有结果。

[下面的命令在实例变量中声明]

public SQLiteConnection sqlConn;
    public SQLiteCommand sqlCmd;
    public DataTable sqlDT = new DataTable();
    public DataSet DS = new DataSet();
    public SQLiteDataAdapter DB;

标签: mysql

解决方案


我发现您的查询有两个问题

  1. 您的某些列名之间包含空格,因此请使用单引号 ''
  2. 值之前没有空格

所以像这样编辑你的查询:

string QueryData = "Insert into details('Customer Ref','First Name','Last name','Address','Mobile', " + "'Email','Gender','DOB', 'Nationality','Prove')"
                                    + " values('" + btnCustomerReference.Text + "','" + btnFirstName.Text + "','" + btnLastName.Text + "','" +
                                    btnAddress.Text + "','" + btnMobile.Text + "','" + btnEmail.Text + "','" + chkGender.Text + "','" + dateTimePicker1 +
                                    "','" + chkNationality.Text + "','" + chkPOI.Text + "')";

并确保您在表中插入的所有数据都与相应列的数据类型匹配。


推荐阅读