c#中的MySQL查询错误

时间:2015-03-24 08:24:16

标签: c# mysql executenonquery

当我从visual studio c#

运行查询时
insert into nts1.empty_routes_mip 
select @rownum := @rownum + 1, station_from_id, station_to_id, nko_empty_run, cost, nko_min, nko_max, nko_ratio_1, nko_ratio_2 
from nts1.empty_routes, (SELECT @rownum := 0) r
where id in (select empty_route_id from nts1.empty_runs_made_lp);

我收到错误

MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Parameter '@rownum' must be defined.
в MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName, Int32 parameterIndex)
в MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet)
в MySql.Data.MySqlClient.Statement.BindParameters()
в MySql.Data.MySqlClient.PreparableStatement.Execute()
в MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
в MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
в MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()

有人可以帮我解决一下吗?

2 个答案:

答案 0 :(得分:0)

根据您发布的错误,我会说您没有定义变量@rownum,因此无法执行查询。我不知道你是如何使用整个查询的,但是因为它在c#中你可能会使用这样的东西:

  <SQLcommand_name>.parameters.add("@parametername", SqlDbType.<variabletype>).Value = <variable value>;

&lt;&gt;之间的事情将根据您自己的数据库等进行设置。

答案 1 :(得分:0)

你忘了初始化@rownum

insert into nts1.empty_routes_mip 
SET @rownum:=0; /* YOUR MISTAKE*/
select @rownum := @rownum + 1, station_from_id, station_to_id, nko_empty_run,cost, nko_min, nko_max, nko_ratio_1, nko_ratio_2 
from nts1.empty_routes, (SELECT @rownum := 0) r
where id in (select empty_route_id from nts1.empty_runs_made_lp);