C#带参数MYSQL语句的问题

DBHelperNB.ExecuteNonQuery("insert into ecs_users(user_name,password,email,question,answer,sex,birthday,frozen_money,pay_points,rank_points,reg_time,last_login,last_ip,visit_count,qq,home_phone,mobile_phone,credit_line) values(?user_name,?password,?email,?question,?answer,?sex,?birthday,?frozen_money,?pay_points,?rank_points,?reg_time,?last_login,?last_ip,?visit_count,?qq,?home_phone,?mobile_phone,?credit_line)",
new MySqlParameter("?user_name", MySqlDbType.VarChar,60) { Value = user_name },
new MySqlParameter("?password", MySqlDbType.VarChar,32) { Value = password },
new MySqlParameter("?email", MySqlDbType.VarChar,60) { Value = email },
new MySqlParameter("?question", MySqlDbType.VarChar,255) { Value = question },
new MySqlParameter("?answer", MySqlDbType.VarChar,255) { Value = answer },
new MySqlParameter("?sex", MySqlDbType.Int16) { Value = sex },
new MySqlParameter("?birthday", MySqlDbType.DateTime) { Value = birthday },
new MySqlParameter("?frozen_money", MySqlDbType.Decimal) { Value = frozen_money },
new MySqlParameter("?pay_points", MySqlDbType.Int16) { Value = pay_points },
new MySqlParameter("?rank_points", MySqlDbType.Int16) { Value = rank_points },
new MySqlParameter("?reg_time", MySqlDbType.DateTime) { Value = reg_time },
new MySqlParameter("?last_login", MySqlDbType.DateTime) { Value = last_login },
new MySqlParameter("?last_ip", MySqlDbType.VarChar,15) { Value = last_ip },
new MySqlParameter("?visit_count", MySqlDbType.Int16) { Value = visit_count },
new MySqlParameter("?qq", MySqlDbType.VarChar,20) { Value = qq },
new MySqlParameter("?home_phone", MySqlDbType.VarChar,20) { Value = home_phone },
new MySqlParameter("?mobile_phone", MySqlDbType.VarChar,20) { Value = mobile_phone },
new MySqlParameter("?credit_line", MySqlDbType.Decimal) { Value = credit_line })

下面是底层代码.
public static int ExecuteNonQuery(string sql, params MySqlParameter[] parameters)
{
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
cmd.Parameters.AddRange(parameters);
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}

...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
(1)顶楼的错误是类型转换错误 (2)上一层的错误是线程同步的问题
http://bbs.csdn.net/topics/390841119 这个是我在另外个版块发的帖子 大家看到了去接分..
引用 8 楼 wangnaisheng 的回复:
修改为 N'-7℃' 试试
http://bbs.csdn.net/topics/390841119 这个是我在另外个版块发的帖子 大家看到了去接分..
引用 2 楼 duanzi_peng 的回复:
这种错误还是 多检查sql语句,应该是参数问题。
http://bbs.csdn.net/topics/390841119 这个是我在另外个版块发的帖子 大家看到了去接分..
  • 打赏
  • 举报
回复
引用 8 楼 wangnaisheng 的回复:
修改为 N'-7℃' 试试
你这个没有试,还是感谢你啊, 在配置文件里加个编码就好了 ;charset=utf8 感谢各位
  • 打赏
  • 举报
回复
OK了 结贴
wangnaisheng 2014-07-23
  • 打赏
  • 举报
回复
修改为 N'-7℃' 试试
  • 打赏
  • 举报
回复
认为是编码格式的问题 我自己先去解决 打扰大家了啊 哈哈
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
(1)顶楼的错误是类型转换错误 (2)上一层的错误是线程同步的问题
我把类型改掉了 ,成功插入了,出现一个新的问题,有一个字段值是 -7℃ , 但是插入之后变成 -7? 符号变成问号了 大神有知道原因吗.?
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
(1)顶楼的错误是类型转换错误 (2)上一层的错误是线程同步的问题
第二个咋解决啊.
threenewbee 2014-07-23
  • 打赏
  • 举报
回复
(1)顶楼的错误是类型转换错误 (2)上一层的错误是线程同步的问题
  • 打赏
  • 举报
回复
到这一步的时候这个提示,然后下面open的时候是正常的.上面原因.
exception92 2014-07-23
  • 打赏
  • 举报
回复
这种错误还是 多检查sql语句,应该是参数问题。
forcyever 2014-07-23
  • 打赏
  • 举报
回复
这无非就是去检查SQL语句,以及传值是否与列数据类型相匹配

110,561

社区成员

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

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

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