控制器asp.net mvc5中的简单SQL查询语法错误(Simple SQL query syntax error in controller asp.net mvc5)
我尝试像其他选择一样转换为int,但是这种情况是多选的,而foreach不适用于int类型。 我试过这个并且它有效:(但)....
//var id_status = Convert.ToInt32(Request.Form["id_status"]); var id_status = Request.Form["id_status"]; var id_cliente = Convert.ToInt32(Request.Form["id_cliente"]); var sql = "SELECT * FROM ativacao INNER JOIN cliente ON ativacao.id_cliente = cliente.id WHERE ativacao.id_cliente =" + id_cliente; if (id_status != null) { foreach (var itemselecionado in id_status) { sql = sql + " OR ativacao.status = '" + itemselecionado + "'"; } }但是,这个foreach甚至可以使用逗号,即SQL查询不起作用。
如何获得正确的SQL查询?
SQL变量的最终值:
"SELECT * FROM ativacao INNER JOIN cliente ON ativacao.id_cliente = cliente.id WHERE ativacao.id_cliente =106 AND cliente.id_prospector = 2 AND cliente.id_executivo = 1 AND cliente.ano_cliente = '2015' --> OR ativacao.status = '4' OR ativacao.status = ',' OR ativacao.status = '5' OR ativacao.status = ',' OR ativacao.status = '6' <--如果我不能很好地解释,我很抱歉,我不太懂英语。
每一个帮助都将受到如此多的赞赏。
I tried to convert to int like other selects, but this case is a multiselect and the foreach doesn't work with type int. I tried this and it worked: (but)....
//var id_status = Convert.ToInt32(Request.Form["id_status"]); var id_status = Request.Form["id_status"]; var id_cliente = Convert.ToInt32(Request.Form["id_cliente"]); var sql = "SELECT * FROM ativacao INNER JOIN cliente ON ativacao.id_cliente = cliente.id WHERE ativacao.id_cliente =" + id_cliente; if (id_status != null) { foreach (var itemselecionado in id_status) { sql = sql + " OR ativacao.status = '" + itemselecionado + "'"; } }However, this foreach is working even with the commas, that is SQL query isn't working.
How can I get correct SQL query?
Final value of the SQL variable:
"SELECT * FROM ativacao INNER JOIN cliente ON ativacao.id_cliente = cliente.id WHERE ativacao.id_cliente =106 AND cliente.id_prospector = 2 AND cliente.id_executivo = 1 AND cliente.ano_cliente = '2015' --> OR ativacao.status = '4' OR ativacao.status = ',' OR ativacao.status = '5' OR ativacao.status = ',' OR ativacao.status = '6' <--I'm sorry if I cant explain very well, I don't know English very well.
Every help will be appreciated so much.
最满意答案
编辑:您可以在foreach循环中执行此操作:
if(itemselecionado == ',') continue;EDIT: You can just do this in your foreach loop:
if(itemselecionado == ',') continue;更多推荐
发布评论