源代码:
 Dim adap As New Odbc.OdbcDataAdapter
            adap.SelectCommand = comd
            adap.Fill(MyDataSet, "dddd") '这一行有错误运行环境:
    vs.net 2005
    ODBC Mysql 3.51 连接 Mysql 4.0
    Winxp Sp2错误信息:System.ArgumentException: 未知 SQL 类型 - 0。
   在 System.Data.Odbc.TypeMap.FromSqlType(SQL_TYPE sqltype)
   在 System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i)
   在 System.Data.Odbc.OdbcDataReader.GetFieldType(Int32 i)
   在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetFieldType(Int32 ordinal)
   在 System.Data.ProviderBase.SchemaMapping.SetupSchemaWithoutKeyInfo(MissingMappingAction mappingAction, MissingSchemaAction schemaAction, Boolean gettingData, DataColumn parentChapterColumn, Object chapterValue)
   在 System.Data.ProviderBase.SchemaMapping..ctor(DataAdapter adapter, DataSet dataset, DataTable datatable, DataReaderContainer dataReader, Boolean keyInfo, SchemaType schemaType, String sourceTableName, Boolean gettingData, DataColumn parentChapterColumn, Object parentChapterValue)
   在 System.Data.Common.DataAdapter.FillMapping(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue)
   在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
我的问题:
.net2.0中能不能使用mysql?
将mysql中的数据读到dataset中时,字段类型有没有需要注意的?

解决方案 »

  1.   

    最好去搞个MySQL的.net组件,字段类型没什么要注意的
      

  2.   

    请到www.mysql.com下载个MySQL.Visualstudio-1.0.2与mysql-connector-net 5.1.3的软件包安装即可,
    其它的开发与MSQL没有区别!同时你也可以在VS2005中的数据管理中,同MSQL2005一样,可视化处理Mysql数据了!
      

  3.   

    修改my.ini文件
    default-character-set=utf8
    到这位老兄的资源下载mysql for .net2.0的ODBC驱动
    http://download.csdn.net/source/214322
    安装完毕之后就可以在VS2005的服务器资源管理器中添加数据连接
    在数据源选项中点击[更改]选择其他,你会在[数据提供程序]中看到.NET Framework Data Provider for MySQL
    server name填写你的mysql服务器的ip地址,本机填写localhost
    user name 和password 和database name照实填写,选择save my password
    然后进入[高级]选项
    将advanced中的character set 设置为utf8 点击[确定]至此所有设置完毕
    测试连接----提示连接正常
    生成的连接字符串如下
    server=localhost;user id=root;Password=root;persist security info=True;database=webdata;character set=utf8//密码是隐藏的,其实字符串中不会出现密码,但是在asp.net中会在web配置文件中出现密码连接字符串中的character set一定要和数据库的character set一致!使用 MySql.Data.MySqlClient这个名空间来连接 MySQL 服务器。
    在C#中,可以使用using语句来引入MySQL数据接口:using MySql.Data.MySqlClient;指定了名空间后,我们就可以和MySQL数据库进行数据交互了。 
    MySql.Data.MySqlClient这个名空间提供了许多用于处理MySQL数据的类。
    下面是这些类的一个样本:  * MySqlConnection: 管理和 MySQL 服务器/数据库的连接;  * MySqlDataAdapter: 一套用于填充DataSet对象和更新MySQL数据库的命令和连接的集合;  * MySqlDataReader: 让你能够从一个 MySQL 数据库读取数据。它是一个单向的数据流;  * MySqlCommand: 提供向数据库服务器发送指令的功能;  * MySqlException: 当发生问题时提供例外处理。  ASP.NET和MySQL的组合
      用 MySqlCommand 对象向MySQL服务器发送 SHOW DATABASES 命令和直接在 MySQL 管理工具中输入这个命令得结果是一样的。唯一的区别是,我们在代码中必须使用另一个对象来获取结果集。MySqlDataReader 对象在获取结果时被实例化(通过 MySqlCommand 类的 ExecuteReader 方法)。MySqlDataReader 对象的 GetString 方法被用于通过ASP.NET的标签控制来显示结果集中的数据。GetString 方法的指针0指定了显示结果集的当前行(在while循环中)的第一列数据。
    =============================================================================================================
      

  4.   

    确实是连接的问题,用.net的connector就没有问题。