利用这个数据库连接已经实现了数据的插入,代码如下
public static void Execute(string strSql)
{
OdbcConnection myConn = Connect();
OdbcCommand myCommand = new OdbcCommand();
myCommand.Connection = myConn;
myCommand.CommandText = strSql;
myCommand.ExecuteNonQuery(); myCommand.Cancel();
myCommand.Dispose(); DisConnect(myConn);
}就是不知为何myAdapter.Fill会出错误,请高人指点!

解决方案 »

  1.   

    OdbcConnection myConn = Connect();
    OdbcDataAdapter myAdapter = new OdbcDataAdapter(strSql,myConn);
    DataSet ds = new DataSet();
    myAdapter.SelectCommand = myCommand;
    myAdapter.Fill(ds);
      

  2.   

    OdbcConnection myConn = Connect();
    OdbcDataAdapter myAdapter = new OdbcDataAdapter(strSql,myConn);
    DataSet ds = new DataSet();
    myAdapter.Fill(ds);
      

  3.   


    查MYSQL API 知的 SQL 类型 - 65530。找出这个错误1005:创建表失败
    1006:创建数据库失败
    1007:数据库已存在,创建数据库失败
    1008:数据库不存在,删除数据库失败
    1009:不能删除数据库文件导致删除数据库失败
    1010:不能删除数据目录导致删除数据库失败
    1011:删除数据库文件失败
    1012:不能读取系统表中的记录
    1020:记录已被其他用户修改
    1021:硬盘剩余空间不足,请加大硬盘可用空间
    1022:关键字重复,更改记录失败
    1023:关闭时发生错误我暂时找不到这个错误的ID
      

  4.   

    try看下错误信息,如果sql语句是正确的,那么就可能是数据库连接问题
      

  5.   

    问题已经解决。
    看了一下[ODBC.NET 数据提供程序 Web 发布版本自述文件]得到灵感我的表中有一列是tinyint类型,如果查询列里有它就会出现这个错误。
    下面是我得到灵感的内容(虽然说的是ORACLE而不是MYSQL),网上发现有少部分人问但都没有最终得到解决办法,希望能给同样遇到这种问题的人一个帮助。OdbcDataAdapter.Fill
    ********************
    如果符合下列所有条件,在对 Oracle 数据库执行 OdbcDataAdapter.Fill 时将失败:1. 用于填充 OdbcDataAdapter 的 SELECT 语句不包含已定义主键的列。 
    2. 用于填充 OdbcDataAdapter 的 SELECT 语句包含已定义唯一索引的列。 
    3. 在将返回的某行中,已定义唯一索引的列包含空值。 
    4. 使用 FillSchema 或 MissingSchemaAction.AddWithKey 请求架构。
     
    若要解决此问题,请修改 SELECT 语句使其包含一个主键列,或删除将返回的行中的空值。或者,
    在检索数据时避免使用 FillSchema 或 AddWithKey。然后,在应用程序中定义架构(包含主键、
    索引等)。