繁体   English   中英

使用MySQLDataAdapter输入的字符串格式不正确

[英]Input string was not in a correct format using MySQLDataAdapter

我在这里查看了许多问题/答案,但似乎都没有帮助

我有以下方法从mySQL数据库中选择数据

我突出显示了发生错误的那一行。

传递的字符串sql是SELECT * FROM tblDtCategory;

OpenDbConnection(dbConn))是用来打开连接并返回任何问题的,可以正常运行

我不明白为什么会收到此错误,看着适配器一切正常,并且我没有尝试向数据库中添加或更新数据库,所以它不能是不匹配的类型...

    public DataTable Select(string sql)
    {            
        MySqlConnection dbConn = new MySqlConnection(DbConnection);

        MySqlDataAdapter adapter = new MySqlDataAdapter();


        DataTable retTable = new DataTable();


        if (OpenDbConnection(dbConn))
        {
            try
            {
                adapter.SelectCommand = new MySqlCommand(sql, dbConn);
                adapter.Fill(retTable); // error here
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

                return null;
            }
            finally
            {
                CloseDbConnection(dbConn);
            }
        }
        else
            return null;

        return retTable;
    }

该图表明它必须已连接到数据库

在此处输入图片说明

该图显示应该返回什么 在此处输入图片说明

**注意记录:3-newcat-1是通过将select语句更改为insert语句从我的应用程序添加的-没问题(!)

堆栈跟踪:

   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int32.Parse(String s, IFormatProvider provider)
   at MySql.Data.Types.MySqlInt32.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket packet, Int64 length, Boolean nullVal)
   at MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue valObject)
   at MySql.Data.MySqlClient.Driver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue value)
   at MySql.Data.MySqlClient.ResultSet.get_Item(Int32 index)
   at MySql.Data.MySqlClient.MySqlDataReader.GetFieldValue(Int32 index, Boolean checkNull)
   at MySql.Data.MySqlClient.MySqlDataReader.GetValue(Int32 i)
   at MySql.Data.MySqlClient.MySqlDataReader.GetValues(Object[] values)
   at System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
   at System.Data.ProviderBase.SchemaMapping.LoadDataRow()
   at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   at System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at Downtime_Aquisition_Administrator.MySQLServer.Select(String sql) in d:\VS2012\Projects\Downtime Acquisition\Downtime Aquisition Administrator\Downtime Aquisition Administrator\frmMain.cs:line 1996

OK找到了问题-男生错误大声笑

进入mySQL服务器并再次运行设置,但是选择了UTF-8而不是文本格式的下拉选项之一,现在可以正常使用了

..我觉得很愚蠢:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM