使用 MySQL 数据 Reader
Using MySQL Data Reader
我不熟悉使用数据 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;
}
}
}
reader["order_status"]
returns object
,因为你告诉它是一个 已经 整数,你需要将它转换为 int
第一。
您需要使用 ==
operator as well since it is a equality operator. =
operator 是赋值运算符。
if ((int)reader["order_status"] == 0)
或者您可以使用 GetInt32
method 及其 从零开始的 列号。假设这是您的查询 returns 的第一列,您可以像这样使用它;
if(reader.GetInt32(0) == 0)
顺便说一句,如果你只想获取单个值,我 强烈 怀疑你可能想使用 ExecuteScalar
方法,因为它获取的是第一行的第一列.然后您可以将查询结构化为 SELECT order_status FROM ...
等..
一定要在while (reader.Read())
之前赋值变量,否则会报错。然后关闭数据 reader 一旦你完成使用它。像这样:
using (MySqlDataReader reader = cmd.ExecuteReader())
{
int retrievedValue = 0;
while (reader.Read())
{
retrievedValue = (int)reader.GetValue(0);
if (retrievedValue == 0)
{
GridView View2 = sender as GridView;
e.Appearance.BackColor = Color.Green;
e.Appearance.BackColor2 = Color.ForestGreen;
}
else if (retrievedValue == 1)
{
GridView View2 = sender as GridView;
e.Appearance.BackColor = Color.Red;
e.Appearance.BackColor2 = Color.ForestGreen;
}
}//and so on...
reader.Close();
}
希望这就是您要找的。
我不熟悉使用数据 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;
}
}
}
reader["order_status"]
returns object
,因为你告诉它是一个 已经 整数,你需要将它转换为 int
第一。
您需要使用 ==
operator as well since it is a equality operator. =
operator 是赋值运算符。
if ((int)reader["order_status"] == 0)
或者您可以使用 GetInt32
method 及其 从零开始的 列号。假设这是您的查询 returns 的第一列,您可以像这样使用它;
if(reader.GetInt32(0) == 0)
顺便说一句,如果你只想获取单个值,我 强烈 怀疑你可能想使用 ExecuteScalar
方法,因为它获取的是第一行的第一列.然后您可以将查询结构化为 SELECT order_status FROM ...
等..
一定要在while (reader.Read())
之前赋值变量,否则会报错。然后关闭数据 reader 一旦你完成使用它。像这样:
using (MySqlDataReader reader = cmd.ExecuteReader())
{
int retrievedValue = 0;
while (reader.Read())
{
retrievedValue = (int)reader.GetValue(0);
if (retrievedValue == 0)
{
GridView View2 = sender as GridView;
e.Appearance.BackColor = Color.Green;
e.Appearance.BackColor2 = Color.ForestGreen;
}
else if (retrievedValue == 1)
{
GridView View2 = sender as GridView;
e.Appearance.BackColor = Color.Red;
e.Appearance.BackColor2 = Color.ForestGreen;
}
}//and so on...
reader.Close();
}
希望这就是您要找的。