关闭

关于MySQL中不能显示TEXT字段的解决办法

标签: mysql数据库.netstringinsertdelphi
6135人阅读 评论(0) 收藏 举报
分类:

    前段时间工作涉及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等语句.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:405304次
    • 积分:4630
    • 等级:
    • 排名:第6318名
    • 原创:53篇
    • 转载:116篇
    • 译文:0篇
    • 评论:59条
    最新评论
    Open Source