我的代码似乎是正确的。但是当我在查询中添加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();
}
}
答案 0 :(得分:5)
它给你一个错误,因为Group
是一个关键字(在Select
和from
等SQL中具有特殊含义的词。此Group
与Group By
冲突,您将其用作列名。您应该将表中的列名更改为Groupname
或GroupType
类似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