gpt4 book ai didi

c# - 想从 mysql 表中添加一个带有 gridview(行)总和的数据,但它显示 - 在 vs05,c# 中使用未分配的局部变量 'a' 错误?

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:05 25 4
gpt4 key购买 nike

void opt_gridview1()
{
string myConnection = "datasource= localhost;port=3306;username=root;password=root";
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand("select * from bs.buffer where type='buffer'", myConn);
MySqlDataReader myReader;
myConn.Open();
string a;

myReader = SelectCommand.ExecuteReader();
while (myReader.Read())
a = myReader.GetString(1);
myConn.Close();

double sum_petrol = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
sum_petrol += Convert.ToDouble(dataGridView1.Rows[i].Cells[5].Value);

}

this.label8.Text = String.Format("{0:n2}", sum_petrol+a);
}

最佳答案

通过适当的缩进,您可以看到在您的代码中有一个路径,其中变量 a 没有被初始化。
编译器无法在编译时知道您的 myReader.Read() 返回 true 还是 false,并注意到这一事实会阻止您的编译,直到您修复错误。

....
string a;

myReader = SelectCommand.ExecuteReader();
while (myReader.Read())
a = myReader.GetString(1);

...

this.label8.Text = String.Format("{0:n2}", sum_petrol+a);

您可以通过使用空字符串初始化变量 a 轻松修复它

string a = string.Empty;

然而,其中的一部分,即最后一行添加带有字符串的 double 让我感到困惑。
它似乎在工作,可能要归功于一些不太为人所知的 string.Format 规则,但我会尝试改变它。如果读取器返回的索引 1 处的字段是一个数值,我建议使用适当类型的变量。

关于c# - 想从 mysql 表中添加一个带有 gridview(行)总和的数据,但它显示 - 在 vs05,c# 中使用未分配的局部变量 'a' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23847352/

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