System.Data.SqlClient.SqlException:关键字'表'

时间:2016-04-05 11:53:16

标签: mysql asp.net vb.net

这是我的Registration.aspx文件的编码。每当我点击提交,我都会

  

System.Data.sqlclient.sqlexception:关键字'表'

附近的语法不正确

这是代码部分。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class Registration : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
            conn.Open();
            // This is the part im getting error in.
            string checkuser = "select count(*) from Table where UserName ='" + uname.Text + "'";
            SqlCommand com = new SqlCommand(checkuser, conn);
            int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
            if (temp == 1)
            {
                Response.Write("User Already Exists");
            }

            conn.Close();
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
            conn.Open();
            string insertQuery = "insert into Table (UserName,Email,Password,Country) values (@uname ,@email ,@pass ,@country)";
            SqlCommand com = new SqlCommand(insertQuery, conn);
            com.Parameters.AddWithValue("@uname", uname.Text);
            com.Parameters.AddWithValue("@email", email.Text);
            com.Parameters.AddWithValue("@pass", pwd.Text);
            com.Parameters.AddWithValue("@country", DropDownList1.SelectedItem.ToString());
            com.ExecuteNonQuery();
            Response.Redirect("Manager.aspx");
            Response.Write("Registration Successful");
            conn.Close();
        }
        catch (Exception ex)
        {
            Response.Write("Error:" + ex.ToString());
        }
    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
}

3 个答案:

答案 0 :(得分:1)

Table是保留字,在这两个查询中使用括号:

"select count(*) from [Table] where UserName ='" + uname.Text + "'";

"insert into [Table] (UserName,Email,Password,Country) values (@uname ,@email ,@pass ,@country)";

答案 1 :(得分:0)

表是一个关键字,所以我不能在这个上下文中使用,所以请确保你的SQL查询是正确的

并且mysql不使用

using System.Data.SqlClient;

答案 2 :(得分:0)

更改您的查询,如下所示

string insertQuery = "insert into [Table] (`UserName`,`Email`,`Password`,`Country`) values (@uname ,@email ,@pass ,@country)";