c# winform使用未赋值的局部变量
本文关键字:赋值 局部变量 winform | 更新日期: 2023-09-27 17:50:37
我有代码检索数据库中的值作为prev_count和做一些计算:
public void calc(string query1,int total_pages1,string m,int y)
{
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query1, connection);
MySqlDataReader datareader = cmd.ExecuteReader();
int calc_pages;
int prev_count;
while (datareader.Read())
{
prev_count = datareader.GetInt32(0);
calc_pages = total_pages1 - prev_count;
}
//close Data Reader
datareader.Close();
Insert(m, y, calc_pages); // problem line
//close Connection
this.CloseConnection();
}
}
现在我的问题是,错误状态是"使用未分配的局部变量'calc_pages'"。我知道这很简单,但我是c#新手。帮助任何人吗?
您只需要在使用calc_pages
之前为其分配一个值。所以,不用这个:
int calc_pages;
int prev_count;
你应该这样做:
int calc_pages = 0;
int prev_count = 0;
如果出现您在稍后引用calc_pages
之前为其分配值。
问题是,如果在datareader
中没有数据,那么while
循环将不会运行,并且这些值将永远不会被赋值。
编译器不能提前确定循环是否会执行,所以你会得到一个错误。
(如果您试图在 while
循环之外使用 prev_count
,您目前会得到相同的错误)