mysql 查询 net_Mysql Asp.Net 查询问题。

在尝试执行一个包含@符号的SQL查询时,遇到了一个致命错误。查询涉及到计算任务注册人数、任务注册人率、任务注册次数和任务终止率。错误信息指出未定义参数'@mycnt'。这可能是因为数据库引擎将@符号解析为参数而不是用于变量的赋值操作。解决方案可能需要调整SQL语法以避免参数混淆。
摘要由CSDN通过智能技术生成

代码如下:stringsql=string.Format("select(@mycnt:=@mycnt+1)as'序号',x.*from(SELECTtaskname,sum(regist_count)as'任务注册人数',"+"(sum(regist_count)/(selectsum(login_user_n...

代码如下:

string sql = string.Format("select (@mycnt := @mycnt + 1) as '序号' , x.* from (SELECT taskname,sum(regist_count) as '任务注册人数',"+

"(sum(regist_count)/(select sum(login_user_number) from ss_srv_guideline c "+

"where c.dataDate= dataDate)) as '任务注册人率',sum(regist_number) as '任务注册次数'"+

",sum(regist_stop_count) as '任务终止次数',(sum(regist_stop_count))/(sum(regist_number)) as'任务终止率' "+

"FROM ss_task_guideline,(select @mycnt:=0) as y where taskname <> '0' and dataDate = '{0}' group by taskname order by regist_count desc) as x;", dataDate);

DataSet ds = dal.execForDataSetHeaderText(sql);

报错:

{MySql.Data.MySqlClient.MySqlException: Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException: Parameter '@mycnt' must be defined.

在 MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName)

在 MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet)

在 MySql.Data.MySqlClient.Statement.BindParameters()

在 MySql.Data.MySqlClient.Statement.Execute()

在 MySql.Data.MySqlClient.PreparableStatement.Execute()

在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)

是不是.net Sql中带@符号的,都认为是参数啊。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值