我已经创建了一个程序来监视我公司的项目进度,但是当我正在测试时,我遇到了一个非常棒的问题。当我在PC上测试它在窗口10它创建了一切运行如预期。然而,当我在运行Windows 7的和我得到的SQL查询代码以下错误我的同事的电脑测试“您的SQL语法错误,检查手册,该手册对应于您的MySQL服务器版本的正确语法使用near'01其中teammember.Name =“SomeName”和项目=“SomeProject”在第1行“。导致错误的代码如下所示。只有在其他机器上的MySQL错误语法
public void UpdateHoursWorked(string teamMember, string projectName, float hoursWorked)
{
SetSafeUpdates(false);
// Error HERE
using (MySqlCommand cmd = new MySqlCommand("update memberprojects " +
"join teammembers on Member = teammembers.TeamMembersID " +
"join projects on Project = projects.ProjectsID " +
"set HoursWorkedOnProject = HoursWorkedOnProject + " + hoursWorked + " " +
"where teammembers.Name = \"" + teamMember + "\" and projects.ProjectName = \"" + projectName + "\"", conn))
cmd.ExecuteNonQuery();
// Update the total hours worked in the projects table, and re-read the projects
UpdateTotalHoursWorked(projectName, hoursWorked);
OnUpdate(EventArgs.Empty);
}
我似乎无法指出问题,因为在Windows 10下,程序完美工作,语法看起来正确。任何关于什么可能导致问题的想法?
那么你可以在错误dump出来的命令,所以你可以看到正在发生什么SQL - 参数一个强大的优良选择,不应该被忽略.. – BugFinder
我不是一个MySQL类型的家伙,但我怀疑双引号迁徙案例问题(结果应该看起来像'where teammember.Name ='SomeName'and projects ='SomeProject'') – nozzleman
您应该为查询使用参数。 –