gpt4 book ai didi

C# MySQLDataReader 为所有行返回相同的字符串

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

我正在尝试从表中提取值,但 MySQLDataReader 似乎不想与我合作。

conn = new MySqlConnection(Credentials);
conn.Open();
MySqlCommand cmd = new MySqlCommand(), cmd2 = new MySqlCommand();
cmd.Connection = conn;
cmd2.Connection = conn;
cmd.CommandText = "SELECT * FROM test";
cmd2.CommandText = "INSERT INTO test (test) VALUES (1),(2),(3),(4),(5),(6),(8);";
cmd2.ExecuteNonQuery();

MySqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
Console.WriteLine(reader.ToString());
}
conn.Close();

INSERT 按其应有的方式工作,因为在检查表格后表格已填充数字 1-8,但是:

while (reader.Read())
{
Console.WriteLine(reader.ToString());
}

在控制台中返回此内容

MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader
MySql.Data.MySqlClient.MySqlDataReader

最佳答案

您需要访问SqlDataReader 的列。您可以阅读Retrieve data using a DataReader 。当前代码仅在读取器上调用 ToString(),该读取器仅返回其类型。

您可以通过以下方式提取数据:

reader.GetString(0)     // get a string in the first column
reader.GetInt32(1) // get an integer in the second column
reader.GetValue(2) // get an object in the third column
reader.GetDateTime(3) // get a datetime
reader.GetDouble(4) // get a double

// or by index/indexing
reader["ColumnName"].ToString() // get value by column name
reader[0].ToString() // get value by index

所以你的代码将变成:

while (reader.Read())
{
// get the value from the first column
Console.WriteLine(reader.GetInt32(0));
}

关于C# MySQLDataReader 为所有行返回相同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854104/

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