由于项目要求,一个.net mvc登录注册的东西网站必须放弃sqlserver数据去使用MySQL数据库,因此我遇到了一些问题,并找出相应的解决方法,
因为sqlserver跟MySQL的数据引擎不同所以必须引用第三方库,
第一种:使用MySQLDriverCS.dll,这个第三方库。
首先我从国内一个软件下载网站吓到这个地Dll,拷贝引用后,发现调试的时候,他就会报错,说已经加载Dll,但是找不到PDB文件,之前也遇到了这种问题,但是没有去解决,这次是准备把这个问题解决的,我试过重新拷贝引用,后来运行程序起来他还要告诉我还要一个Dll,于是我就去下了那个Dll,引用,发现并没办法引用,报错不是有效的DLL文件,下了很多东西,弄了两个消失发现然并卵,依旧无法解决这个问题。于是我就放弃这个了DLL。于是我就去利用某度如何使用MySQL数据库,找到了第二种方法。
第二种:依旧使用第三方库,MySql.Data.dll这个库。这次就不这么多事了,我直接就去官网下了DLL,然后直接拷贝,引用,具体教程你们看别人怎么时候的,我这里重点不是说这个。
第三种:通过ODBC访问MySQL数据库,具体怎么弄我就没研究了,应该是好弄得。
这篇文章的重点是,我用C#跟sqlserver数据库时,有一个sqlcommand的executenonquery方法是用来获取返回数据判断是否执行成功的,然后当我实例化sqlcommand对象,调用里面的方法,
我之前用sqlserver一直都是这样写的。代码差不多就是这样(见下):
上面的代码定义一个sqlcommand对象,然后对象实例化,调用对象里面executeNonQuery方法,从而获取到SQL语句执行返回的受影响行数一般都是这样的处理的吧。
但是当我用MySQLcommand就不同了,我用相同的方法他总是一直提醒我没有找到对象,提示错误,代码反复的查看一直没看出有什么问题,我一开始以为是我的语句的问题,一直在某度搜索语句,后来我就换了个方式看看别人代码是怎么写的,然后我就看到别人的代码里面没有声明MySQLcommand对象,直接是声明一个var类型,然后直接实例化MySQLcommand对象。然后我就改了下代码。(见图下),于是莫名其妙就好了。不过还是没找到原因,于是我就想写这个随笔记录下。
至于原因我就不去纠结了,但是我希望有大神帮我指正下,只是什么原因,因为我感觉自己的基础性知识太差了。求大神科普下,本篇文章纯手打,转载请注明出处