关于MySQL中不能显示TEXT字段的解决办法
2006-05-19 10:22
656 查看
前段时间工作涉及MySQL数据库的操作,发现其中的TEXT字段读不出来,在CSDN上面发贴,得到一种答案,一直没时间测试,现在转在这里:
http://community.csdn.net/Expert/TopicView3.asp?id=4626220
主 题: 请问高手:MySQLDriverCS 和 MySQL Connector/Net 哪个性能更好一些?不知谁做过比较?
作 者: chsfly (一蓑烟雨任平生)
等 级:
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 200
回复次数: 18
发表时间: 2006-3-20 12:51:17
1、MySQLDriverCS 和 MySQL Connector/Net 哪个性能更好一些?不知谁做过比较?
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-3-20 15:33:52 得分:0
看来我得顶一下?难道就没有大侠用过吗?
回复人:eglic(圪圪) (错过的,还能找回来么?) ( ) 信誉:106 2006-3-21 13:41:00 得分:0
只用过 MySQL Connector/Net
回复人:syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) ( ) 信誉:95 2006-3-21 13:56:28 得分:0
没用过,为啥你不自己测一下呢?
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-3-24 15:22:54 得分:0
由于忙项目开发,没有多少时进行测试。只是草草的看了一下MySQL Connector/Net手册,感觉MySQL Connector/Net还是没有MySQLDriverCS.好。
1.MySQLDriverCS
现已经是3.0.x版,.NET刚发行,它就应运而生;
性能还是比较稳定。我用它做过一个小项目。
功能比较全。在最新版提供了事务的支持。
支持mono,.net1.0,.net1.1 ,.net2.0
2.MySQL Connector/Net
版本才1.0.x,出现较晚。
功能不全。没有SQLInsertCommand, UpDataCommand ,SelectCommand .
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-3-24 15:23:38 得分:0
下次有时间再测测它们的性能比较。
回复人:chentianfen(yi) ( ) 信誉:100 2006-3-24 15:49:11 得分:0
两个都用过,如果使用最直接类,没什么感觉,如果使用ODBC的话,MS-SQL销微快一点
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-04 09:28:00 得分:0
前几天在使用mysql时候发现一个问题当按中文关键查询的时候发现查不到,但也不报错误.
select * from User where User_Name='一蓑烟雨任平生';
后来查了一帮助,发现原来mysql对中文字段是按Binary进行存储.查询也是一样.只需加这个关键字就可以了.
select * from User where Binary User_Name='一蓑烟雨任平生'
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-07 11:28:00 得分:0
这个贴子以后将成为我开发mysql数据库问题的汇集
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-10 15:10:00 得分:0
希望大家也参与此贴,发布关于.net 开发 mysql所遇到的问题.
回复人:cosmicking(.net新手) ( ) 信誉:100 2006-04-10 16:54:00 得分:0
我什么连MySql数据库时会出现“请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析”的错误?
回复人:runnercn() ( ) 信誉:98 2006-04-10 17:25:00 得分:0
用MysqlConnector/Net吧,我用这个,很好用的,至于性能,我没有去测试这两个。
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 10:56:00 得分:0
今天又发现一个问题:
当我使用MySQLDriverCS 查询 带有Text字段表,出现Text字段的值不能得出正确的值,不论记录Text字段的值是什么,得到的都是"System.Byte[]" .用的是MySQLSelectCommand命令进行查询.
不得其解.
后来在网上查询.得到的结果是只能用Reader进行读取才可以,无奈只能用Reader方法了.
具体代码如下:
public string GetString()
{
string retvalue="";
MySQLConnection conn = new MySqlConn().Open();
try
{
string cmdText ="select TextFildes from Table1 where TextFildesOID = '" + this.TextFildesOID.ToString() +" '";
MySQLDriverCS.MySQLCommand mysqlcmd =new MySQLCommand(cmdText,conn) ;
MySQLDriverCS.MySQLDataReader mysqlreader =mysqlcmd.ExecuteReaderEx();
if (mysqlreader.Read())
{
retvalue =mysqlreader.GetString(mysqlreader.GetOrdinal("TextFildes"));
}
mysqlreader.Close();
}
catch(MySQLException ex)
{
this.log.Error("TextFildesTable",ex);
}
finally
{
conn.Close();
conn.Dispose();
}
return retvalue;
}
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 10:57:00 得分:0
不知道MysqlConnector/Net有没有这样的问题?
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 11:09:00 得分:0
关于中文问题:
1.要设置mysql数据库支持中文,我设置的是gbk
2.设置连接字符串
具体是:
1、用MySQLDriverCS
在conn.open();后
先执行:
MySQLCommand cmd=new MySQLCommand("set charset gb2312",conn);
//或者是 MySQLCommand cmd=new MySQLCommand("set charset gbk",conn);也可以.我都试过.
cmd.ExecuteNonQuery();
cmd.Dispose();
再执行你的其它语句,即可。
2、用MySQL Connector/Net
在连接字符串后面加上charset=gb2312;
说明:第2种方法我没有试,是在csdn中找的。如成功告知一下。我主要用MySQLDriverCS;
回复人:daguohuai() ( ) 信誉:96 2006-04-12 14:27:00 得分:0
谢谢 chsfly(一蓑烟雨任平生)
==================================
后一种方法是可以的,连接字串后面加上;charset=gb2312就可以支持中文了。(我试验的是insert一个中文varchar字段,不加的话,插入的都是问号)
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 16:57:00 得分:0
"cosmicking(.net新手)
我什么连MySql数据库时会出现“请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析”的错误?
"
给出详细的错误信息,最好能给出代码.
我补充一下: 上面的方法是针对.NET的,我在使用Delphi7开发的过程中遇到了同样的问题,后来也依照上面的办法解决了:
比如可以TADOQuery组件先执行SQL语句"set charset gb2312";然后再执行Select or Insert等语句.
http://community.csdn.net/Expert/TopicView3.asp?id=4626220
主 题: 请问高手:MySQLDriverCS 和 MySQL Connector/Net 哪个性能更好一些?不知谁做过比较?
作 者: chsfly (一蓑烟雨任平生)
等 级:
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 200
回复次数: 18
发表时间: 2006-3-20 12:51:17
1、MySQLDriverCS 和 MySQL Connector/Net 哪个性能更好一些?不知谁做过比较?
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-3-20 15:33:52 得分:0
看来我得顶一下?难道就没有大侠用过吗?
回复人:eglic(圪圪) (错过的,还能找回来么?) ( ) 信誉:106 2006-3-21 13:41:00 得分:0
只用过 MySQL Connector/Net
回复人:syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) ( ) 信誉:95 2006-3-21 13:56:28 得分:0
没用过,为啥你不自己测一下呢?
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-3-24 15:22:54 得分:0
由于忙项目开发,没有多少时进行测试。只是草草的看了一下MySQL Connector/Net手册,感觉MySQL Connector/Net还是没有MySQLDriverCS.好。
1.MySQLDriverCS
现已经是3.0.x版,.NET刚发行,它就应运而生;
性能还是比较稳定。我用它做过一个小项目。
功能比较全。在最新版提供了事务的支持。
支持mono,.net1.0,.net1.1 ,.net2.0
2.MySQL Connector/Net
版本才1.0.x,出现较晚。
功能不全。没有SQLInsertCommand, UpDataCommand ,SelectCommand .
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-3-24 15:23:38 得分:0
下次有时间再测测它们的性能比较。
回复人:chentianfen(yi) ( ) 信誉:100 2006-3-24 15:49:11 得分:0
两个都用过,如果使用最直接类,没什么感觉,如果使用ODBC的话,MS-SQL销微快一点
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-04 09:28:00 得分:0
前几天在使用mysql时候发现一个问题当按中文关键查询的时候发现查不到,但也不报错误.
select * from User where User_Name='一蓑烟雨任平生';
后来查了一帮助,发现原来mysql对中文字段是按Binary进行存储.查询也是一样.只需加这个关键字就可以了.
select * from User where Binary User_Name='一蓑烟雨任平生'
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-07 11:28:00 得分:0
这个贴子以后将成为我开发mysql数据库问题的汇集
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-10 15:10:00 得分:0
希望大家也参与此贴,发布关于.net 开发 mysql所遇到的问题.
回复人:cosmicking(.net新手) ( ) 信誉:100 2006-04-10 16:54:00 得分:0
我什么连MySql数据库时会出现“请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析”的错误?
回复人:runnercn() ( ) 信誉:98 2006-04-10 17:25:00 得分:0
用MysqlConnector/Net吧,我用这个,很好用的,至于性能,我没有去测试这两个。
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 10:56:00 得分:0
今天又发现一个问题:
当我使用MySQLDriverCS 查询 带有Text字段表,出现Text字段的值不能得出正确的值,不论记录Text字段的值是什么,得到的都是"System.Byte[]" .用的是MySQLSelectCommand命令进行查询.
不得其解.
后来在网上查询.得到的结果是只能用Reader进行读取才可以,无奈只能用Reader方法了.
具体代码如下:
public string GetString()
{
string retvalue="";
MySQLConnection conn = new MySqlConn().Open();
try
{
string cmdText ="select TextFildes from Table1 where TextFildesOID = '" + this.TextFildesOID.ToString() +" '";
MySQLDriverCS.MySQLCommand mysqlcmd =new MySQLCommand(cmdText,conn) ;
MySQLDriverCS.MySQLDataReader mysqlreader =mysqlcmd.ExecuteReaderEx();
if (mysqlreader.Read())
{
retvalue =mysqlreader.GetString(mysqlreader.GetOrdinal("TextFildes"));
}
mysqlreader.Close();
}
catch(MySQLException ex)
{
this.log.Error("TextFildesTable",ex);
}
finally
{
conn.Close();
conn.Dispose();
}
return retvalue;
}
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 10:57:00 得分:0
不知道MysqlConnector/Net有没有这样的问题?
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 11:09:00 得分:0
关于中文问题:
1.要设置mysql数据库支持中文,我设置的是gbk
2.设置连接字符串
具体是:
1、用MySQLDriverCS
在conn.open();后
先执行:
MySQLCommand cmd=new MySQLCommand("set charset gb2312",conn);
//或者是 MySQLCommand cmd=new MySQLCommand("set charset gbk",conn);也可以.我都试过.
cmd.ExecuteNonQuery();
cmd.Dispose();
再执行你的其它语句,即可。
2、用MySQL Connector/Net
在连接字符串后面加上charset=gb2312;
说明:第2种方法我没有试,是在csdn中找的。如成功告知一下。我主要用MySQLDriverCS;
回复人:daguohuai() ( ) 信誉:96 2006-04-12 14:27:00 得分:0
谢谢 chsfly(一蓑烟雨任平生)
==================================
后一种方法是可以的,连接字串后面加上;charset=gb2312就可以支持中文了。(我试验的是insert一个中文varchar字段,不加的话,插入的都是问号)
回复人:chsfly(一蓑烟雨任平生) ( ) 信誉:100 2006-04-12 16:57:00 得分:0
"cosmicking(.net新手)
我什么连MySql数据库时会出现“请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析”的错误?
"
给出详细的错误信息,最好能给出代码.
我补充一下: 上面的方法是针对.NET的,我在使用Delphi7开发的过程中遇到了同样的问题,后来也依照上面的办法解决了:
比如可以TADOQuery组件先执行SQL语句"set charset gb2312";然后再执行Select or Insert等语句.
相关文章推荐
- 关于Delphi中RS Float字段只有4位及OADateTime不能显示到秒的解决办法
- 关于wxPython中的TextCtrl响应失去焦点事件后不能再次编辑或出现不正常现象的解决办法
- Mysql不能显示中文的解决办法
- android中的textview显示汉字不能自动换行的一个解决办法
- Linux(LAMPP)下使用MySQL时不能正常显示中文的解决办法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 关于电脑不能显示隐藏文件的解决办法
- Mysql不能显示中文的解决办法
- ScrollView嵌套ListView显示不完全、嵌套TextView不能滚动解决办法
- mysql字段类型为int默认null,插入却显示0的解决办法,参考php代码
- mysql不能显示中文或者为乱码的解决办法
- 小结mysql 不能显示中文的解决办法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 从自定义view中传值到activity,用textview显示,自定义view就不能刷新了。大半天时间了,求解决办法
- Android-基础-Android-studio中关于模拟器的-data目录不能显示的解决办法
- 关于新建管理员账户后不能显示或者找不到登录默认管理员账户的解决办法
- 关于某些图片在ie中不能正常显示的解决办法之一
- AS中关于模拟器的/data目录不能显示的解决办法
- linux下mysql的中文不能显示及sock链接错误问题的一些解决办法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法