gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:28:21 28 4
gpt4 key购买 nike

我在这里查看了一些问题/答案,但似乎没有一个有帮助

我有以下方法从 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;
}

图像显示它必须已连接到数据库

enter image description here

图像显示应返回的内容 enter image description here

**注意,记录: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

最佳答案

好的,发现问题了 - 学生错误哈哈

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

..我觉得自己很蠢:)

关于c# - 使用 MySQLDataAdapter 输入字符串的格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17744474/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com