悲剧:第一次使用Mysql
本博客还有大量的.NET开源技术文章,您可能感兴趣:
5..NET平台机器学习组件-Infer.NET系列文章:链接
好久没有写程序了,准备开始上班了,有些地方要用到数据库,经过仔细斟酌,还是考虑选用开源的MySql,虽然一直用MSSQL和Access还不错,但Mysql的鼎鼎大名和优势也听说过,只是没机会用到。所以也想趁此机会好好学习一下。
建立数据库和表这些简单的过程都差不多了,也很顺利,感觉比较好,虽然是英文界面,但还可以接受。接下来通过C#来操作数据库就遇到了很大的麻烦。插入数据时一直提示错误,不能为空。可是调试发现所有的数据值都有,怎么会出现这种情况呢。。纳闷之际想到了,我想到可能是字符集的问题,而且我的字段名称都用的是中文。google一下,还发现字符集的问题真不少,所以把有重新建表,测试还是不通过,提示“Column '列名' cannot be null”,这次还好是英文,开始都是一些乱码,还是不能解决问题,又去google,这次发现有人和我有同样的问题,而且下面这篇文章还详细介绍了改正方法:http://bybaxiao.blog.163.com/blog/static/309761232009321102523527/
经过调试确认就是这个原因:
MySQL使用基于Parameter方式代码,总是提示:“Column '列名' cannot be null”
MySQL使用基于Parameter方式代码,总是提示:“Column '列名' cannot be null”
解决方法1:直接在连接字符串里面加一个 oldsyntax=true 即可。
例如:server=127.0.0.1;user id=root;password=;database=itemdb;oldsyntax=true
解决方法2:将语句中的 @ 替换为 ?
例如:
StringBuilder strSql=new StringBuilder(); strSql.Append("insert into test("); strSql.Append("name)"); strSql.Append(" values ("); strSql.Append("?name)"); MySqlParameter[] parameters = { new MySqlParameter("?name", MySqlDbType.VarChar,45)}; parameters[0].Value = model.name; DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);
终于解决问题了,郁闷死了,花了我3个小时啊。
编程爱好者,关注.NET软件开发,Matlab编程及网络技术
欢迎光临我的Cnblog博客:http://www.cnblogs.com/asxinyu/
欢迎大家进行交流,QQ :1287263703 ;MSN:dong.binhui@hotmail.com
E-mail:asxinyu@qq.com,asxinyu@126.com
.NET数据挖掘与机器学习,作者博客: http://www.cnblogs.com/asxinyu
E-mail:1287263703@qq.com