C# SQL CommandText上的语法不正确
我正在尝试构建一个SQL查询,并将传递一个字符串作为参数。然而,我得到了一个错误的语法错误。我已经打印出了这些值,但对我来说一切都很好 我有一个字符串“sqlString”,它是通过一系列连接构建的,产生如下结果:C# SQL CommandText上的语法不正确,c#,asp.net,sql,C#,Asp.net,Sql,我正在尝试构建一个SQL查询,并将传递一个字符串作为参数。然而,我得到了一个错误的语法错误。我已经打印出了这些值,但对我来说一切都很好 我有一个字符串“sqlString”,它是通过一系列连接构建的,产生如下结果: sqlString = " and (event_id=60 OR event_id=61 OR event_id=56 OR event_id=73)" SqlCommand totalCmd = new SqlCommand(); totalCmd.CommandText =
sqlString = " and (event_id=60 OR event_id=61 OR event_id=56 OR event_id=73)"
SqlCommand totalCmd = new SqlCommand();
totalCmd.CommandText = "SELECT sum(datediff(hour,[event_start],[event_end])) as Timeworked FROM event WHERE (event_start >= @StartDate and event_end <= @EndDate) @mySqlString";
totalCmd.Parameters.AddWithValue("StartDate", txtStartDate.Text);
totalCmd.Parameters.AddWithValue("EndDate", txtEndDate.Text);
totalCmd.Parameters.AddWithValue("mySqlString", sqlString);
totalDT = SqlComm.SqlDataTable(totalCmd);
sqlString=“and(event_id=60或event_id=61或event_id=56或event_id=73)”
SqlCommand totalCmd=新的SqlCommand();
totalCmd.CommandText=“选择sum(datediff(hour,[event_start],[event_end])作为从事件开始计算的时间,其中(event_start>=@StartDate和event_end您需要在参数前面加上@
符号,如下所示:
totalCmd.Parameters.AddWithValue("@StartDate", txtStartDate.Text);
totalCmd.Parameters.AddWithValue("@EndDate", txtEndDate.Text);
totalCmd.Parameters.AddWithValue("@mySqlString", sqlString);
注意:您使用的语法没有找到匹配项,因此没有替换参数值,因此它在查询中传递了@mySqlString
您需要将@
符号放在参数前面,如下所示:
totalCmd.Parameters.AddWithValue("@StartDate", txtStartDate.Text);
totalCmd.Parameters.AddWithValue("@EndDate", txtEndDate.Text);
totalCmd.Parameters.AddWithValue("@mySqlString", sqlString);
注意:您使用的语法没有找到匹配项,因此没有替换参数值,因此它在查询中传递了@mySqlString
不能将sqlString
添加为参数。应将其直接连接到CommandText:
totalCmd.CommandText = "SELECT sum(datediff(hour,[event_start],[event_end])) as Timeworked FROM event WHERE (event_start >= @StartDate and event_end <= @EndDate) " + sqlString;
totalCmd.CommandText=“选择sum(datediff(hour,[event\u start],[event\u end])作为从事件开始计算的时间,其中(event\u start>=@StartDate and event\u end不能将sqlString
作为参数添加。应将其直接连接到CommandText:
totalCmd.CommandText = "SELECT sum(datediff(hour,[event_start],[event_end])) as Timeworked FROM event WHERE (event_start >= @StartDate and event_end <= @EndDate) " + sqlString;
totalCmd.CommandText=“选择sum(datediff(hour,[event\u start],[event\u end])作为从事件开始计算的时间,其中(EnviaStase>=StaseDebug和EnvithEnter您尝试注入SQL。参数阻止SQL注入。参数试图阻止SQL注入。谢谢。我没有考虑。现在正在工作。谢谢。我没有考虑。现在正在工作。非常感谢。这不是问题,而是谢谢。谢谢你的留言。我也会把它合并。这不是这里的问题,但谢谢你的留言。我也会把它合并。