标签: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;
}
}
}
解决方法:
reader [“order_status”]返回对象,因为你告诉它已经是整数,你需要先将它强制转换为int.
你需要使用==
operator,因为它是一个相等运算符. =
operator是一个赋值运算符.
if ((int)reader["order_status"] == 0)
或者您可以将GetInt32
method与其基于零的列号一起使用.假设它是您的查询返回的第一列,您可以像使用它一样使用它;
if(reader.GetInt32(0) == 0)
顺便说一下,如果你只想得到单个值,我强烈怀疑你可能想要使用ExecuteScalar
方法,因为它是第一行的第一列.然后,您可以将查询结构化为SELECT order_status FROM …等.
标签:c,mysql,datareader 来源: https://codeday.me/bug/20190528/1170870.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。