C#调用mysql存储过程的参数问题

gistop 2018-07-17 03:22:47
mysql表有两个字段depth和unit,分别为float和varchar类型。给存储过程传递where条件,发现有2会查询不到。在mysql里面1和2都是能得到结果的,发现是C#传递给mysql后汉字变成乱码的问题,这个怎么解决呢?多谢指点先。
1 where = "depth = 10"; //正常
2 where = "unit LIKE '%采%'"; //查询不到

 MySqlCommand mysqlcom = new MySqlCommand(procedureName, sqlConnection);
...
mysqlcom.Parameters.AddWithValue("@_where", where);
...
mysqlcom.ExecuteNonQuery();


附mysql存储过程
DELIMITER $$

USE `tryp`$$

DROP PROCEDURE IF EXISTS `selectbytablenamepaging`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `selectbytablenamepaging`(
IN _fields VARCHAR(1000), #要查询的字段,用逗号(,)分隔
IN _tables TEXT, #要查询的表
IN _where VARCHAR(2000), #查询条件
IN _orderby VARCHAR(200), #排序规则
IN _pageindex INT, #查询页码
IN _pageSize INT, #每页记录数
/*_sumfields VARCHAR(200),#求和字段 */
#输出参数
OUT _totalcount INT, #总记录数
OUT _pagecount INT #总页数
/* OUT _sumResult VARCHAR(2000)#求和结果 */
)
BEGIN
#140529-xxj-分页存储过程
#计算起始行号
SET @startRow = _pageSize * (_pageIndex - 1);
SET @pageSize = _pageSize;
SET @rowindex = 0; #行号
#合并字符串
SET @strsql = CONCAT(
#'select sql_calc_found_rows @rowindex:=@rowindex+1 as rownumber,' #记录行号
'select sql_calc_found_rows '
,_fields
,' from '
,_tables
,CASE IFNULL(_where, '') WHEN '' THEN '' ELSE CONCAT(' where ', _where) END
,CASE IFNULL(_orderby, '') WHEN '' THEN '' ELSE CONCAT(' order by ', _orderby) END
,' limit '
,@startRow
,','
,@pageSize
);
PREPARE strsql FROM @strsql;#定义预处理语句
EXECUTE strsql; #执行预处理语句
DEALLOCATE PREPARE strsql; #删除定义
#通过 sql_calc_found_rows 记录没有使用 limit 语句的记录,使用 found_rows() 获取行数
SET _totalcount = FOUND_ROWS();
#计算总页数
IF (_totalcount <= _pageSize) THEN
SET _pagecount = 1;
ELSE IF (_totalcount % _pageSize > 0) THEN
SET _pagecount = _totalcount DIV _pageSize + 1;
ELSE
SET _pagecount = _totalcount DIV _pageSize;
END IF;
END IF;
END$$

DELIMITER ;
...全文
168 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
全栈极简 2018-07-18
  • 打赏
  • 举报
回复
估计是你的mysql设置的问题,https://blog.csdn.net/u012410733/article/details/61619656

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧