控制器asp.net mvc5中的简单SQL查询语法错误(Simple SQL query syntax error in controller asp.net mvc5)

编程入门 行业动态 更新时间:2024-10-18 14:22:19
控制器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;

更多推荐

本文发布于:2023-08-07 12:54:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1464514.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控制器   语法错误   简单   SQL   net

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!