使用MySQL数据阅读器

Kev*_*uez 4 c# mysql datareader

我不熟悉使用Data Reader,我需要以下代码的帮助,我想从数据库中检索单个数据.

MySqlDataAdapter data = new MySqlDataAdapter(cmd);
                    conn.Open();
                    DataTable dt = new DataTable();
                    data.Fill(dt);
                    gridView1.DataSource = dt;

                    int retrievedValue = 0;
                    using (MySqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            if ((int)reader["order_status"] == 0)
                            {
                                retrievedValue = (int)reader.GetValue(0);

                                    GridView View2 = sender as GridView;
                                    e.Appearance.BackColor = Color.Green;
                                    e.Appearance.BackColor2 = Color.ForestGreen;
                            }
                        }
                    }
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 5

reader["order_status"]返回object,因为你告诉它已经是一个整数,你需要int先把它强制转换.

您还需要使用==运算符,因为它是一个相等运算符.=operator是赋值运算符.

if ((int)reader["order_status"] == 0)
Run Code Online (Sandbox Code Playgroud)

或者您可以使用GetInt32方法,其中包含从零开始的列号.假设它是您的查询返回的第一列,您可以像使用它一样使用它;

if(reader.GetInt32(0) == 0)
Run Code Online (Sandbox Code Playgroud)

顺便说一下,如果你只想得到单个值,我强烈怀疑你可能想要使用ExecuteScalar方法,因为它是第一行的第一列.然后你可以构建你的查询SELECT order_status FROM ...等.