C#-从mysql数据库中选择将数据翻倍

问题描述 投票:0回答:1

我将数据存储在mysql数据库中,我想获取该数据并将其写入C#列表。它确实可以工作并将数据放入我的列表,但是由于某种原因,它会使数据加倍。当我调试时,列表中有36个项目,而数据库中仅存储了18个项目...

用于从数据库获取数据的代码是:

string query2 = $"SELECT odgovor FROM appdb.odgovori WHERE nazivAnkete = '{selected}';";
using (MySqlCommand command = new MySqlCommand(query2, conn))
    {
     using (MySqlDataReader reader = command.ExecuteReader())
         {
          while (reader.Read())
               {
                //Write data to string list
                answerData.Add(reader.GetString(0));
               }
          }
    }

这种奇怪行为的原因可能是什么?我想念什么吗?

编辑我尝试了没有using块的情况,但仍然执行相同的操作。

answerData.Clear();
//Get the odgovori for the anketa from the database
string query2 = $"SELECT odgovor FROM appdb.odgovori WHERE nazivAnkete = '{selected}';";
MySqlCommand command = new MySqlCommand(query2, conn);
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
     {
       answerData.Add(reader.GetString(0));
     }
reader.Close();
c# mysql
1个回答
0
投票

最终尝试不加倍地使用using-block,这可能会引起问题。参见以下示例:

            // Create a command object  
            SqlCommand cmd = new SqlCommand(SQL, conn);  
            conn.Open();  

            // Call ExecuteReader to return a DataReader  
            SqlDataReader reader = cmd.ExecuteReader();  
            Console.WriteLine("customer ID, Contact Name, " + "Contact Title, Address ");  
            Console.WriteLine("=============================");  

            while (reader.Read())  
            {  
                Console.Write(reader["CustomerID"].ToString() + ", ");  
                Console.Write(reader["ContactName"].ToString() + ", ");  
                Console.Write(reader["ContactTitle"].ToString() + ", ");  
                Console.WriteLine(reader["Address"].ToString() + ", ");  
            }  

            //Release resources  
            reader.Close();  
            conn.Close();  
© www.soinside.com 2019 - 2024. All rights reserved.