关键字附近的语法不正确

时间:2017-08-03 07:01:59

标签: c# sql-server

我的代码似乎是正确的。但是当我在查询中添加Group关键字时,它会生成一条消息:

  

关键字'群组'

附近的语法不正确

但是当我删除Group关键字时,程序成功运行。

private void CSRMaintReviewer_Load(object sender, EventArgs e)
    {
        this.MaintReviewertbl.DataSource = null;
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["csrapps"].ConnectionString);

        conn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select " +
                          "EmailID_Reviewer, " +
                          "Reviewer_Name, " +
                          "Reviewer_Email, " +
                          "EmailID_TeamLead, " +
                          "TeamLead_Name, " +
                          "TeamLead_Email, " +
                          "Site, " +
                          "Business_Unit, " +
                          "Group, " +
                          "Station, " +
                          "Pkg_Department, " +
                          "Region, " +
                          "Account, " +
                          "Key_Field, " +
                          "EmailID_SiteManager, " +
                          "SiteManager_Name, " +
                          "SiteManager_Email, " +
                          "EmailID_SiteDirector, " +
                          "SiteDirector_Name, " +
                          "SiteDirector_Email, " +
                          "EmailID_President, " +
                          "President_Name, " +
                          "President_Email, " +
                          "Customer, " +
                          "Flag, " +
                          "CreatedBy, " +
                          "DateCreated, " +
                          "LastUpdatedBy, " +
                          "DateUpdated " +
                          "from dbo.tblCSRMaintReviewer ";

        try
        {
            SqlDataReader reader = null;
            reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    MaintReviewer reviewer = new MaintReviewer();
                    reviewer.EmailIDReviewer = reader["EmailID_Reviewer"].ToString();
                    reviewer.ReviewerName = reader["Reviewer_Name"].ToString();
                    reviewer.ReviewerEmail = reader["Reviewer_Email"].ToString();
                    reviewer.EmailIDTeamLead = reader["EmailID_TeamLead"].ToString();
                    reviewer.TeamLeadName = reader["TeamLead_Name"].ToString();
                    reviewer.TeamLeadEmail = reader["TeamLead_Email"].ToString();
                    reviewer.Site = reader["Site"].ToString();
                    reviewer.BusinessUnit = reader["Business_Unit"].ToString();
                    reviewer.Group = reader["Group"].ToString();
                    reviewer.Station = reader["Station"].ToString();
                    reviewer.PKGDepartment = reader["Pkg_Department"].ToString();
                    reviewer.Region = reader["Region"].ToString();
                    reviewer.Account = reader["Account"].ToString();
                    reviewer.KeyField = reader["Key_Field"].ToString();
                    reviewer.EmailIDSiteManager = reader["EmailID_SiteManager"].ToString();
                    reviewer.SiteManagerName = reader["SiteManager_Name"].ToString();
                    reviewer.SiteManagerEmail = reader["SiteManager_Email"].ToString();
                    reviewer.EmailIDSiteDirector = reader["EmailID_SiteDirector"].ToString();
                    reviewer.SiteDirectorName = reader["SiteDirector_Name"].ToString();
                    reviewer.SiteDirectorEmail = reader["SiteDirector_Email"].ToString();
                    reviewer.EmailIDPresident = reader["EmailID_President"].ToString();
                    reviewer.PresidentName = reader["President_Name"].ToString();
                    reviewer.PresidentEmail = reader["President_Email"].ToString();
                    reviewer.Customer = reader["Customer"].ToString();
                    reviewer.Flag = reader["Flag"].ToString();
                    reviewer.CreatedBy = reader["CreatedBy"].ToString();
                    reviewer.DateCreated = reader["DateCreated"].ToString();
                    reviewer.LastUpdatedBy = reader["LastUpdatedBy"].ToString();
                    reviewer.DateUpdated = reader["DateUpdated"].ToString();
                    string[] row = { reviewer.EmailIDReviewer, reviewer.ReviewerName, reviewer.ReviewerEmail, reviewer.EmailIDTeamLead, reviewer.TeamLeadName,
                                     reviewer.TeamLeadEmail, reviewer.Site, reviewer.BusinessUnit, reviewer.Group,  reviewer.Station, reviewer.PKGDepartment,
                                     reviewer.Region, reviewer.Account, reviewer.KeyField, reviewer.EmailIDSiteManager, reviewer.SiteManagerName,
                                     reviewer.SiteManagerEmail, reviewer.EmailIDSiteDirector, reviewer.SiteDirectorName, reviewer.SiteDirectorEmail, reviewer.EmailIDPresident,
                                     reviewer.PresidentName, reviewer.PresidentEmail, reviewer.Customer, reviewer.Flag, reviewer.CreatedBy,
                                     reviewer.DateCreated, reviewer.LastUpdatedBy, reviewer.DateUpdated };
                    reviewers.Add(reviewer);
                }
                MaintReviewertbl.DataSource = reviewers;
                MaintReviewertbl.Refresh();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            conn.Close();
            conn.Dispose();
            cmd.Dispose();
        }
    }

2 个答案:

答案 0 :(得分:5)

它给你一个错误,因为Group是一个关键字(在Selectfrom等SQL中具有特殊含义的词。此GroupGroup By冲突,您将其用作列名。您应该将表中的列名更改为GroupnameGroupType类似SQL中不是关键字的任何内容。这将解决错误。

答案 1 :(得分:2)

Looks like you are having a column named Group, but it's a keyword So I suggest you to change the column name(if it will not need severe coding changes) or else simply enclose them in a pair of [], like this [Group]. Keep in mind its not a good practice to give such keywords for other purposes, they are already reserved for some other purposes