【发布时间】:2021-08-25 20:13:30
【问题描述】:
我已经用 DataReader 阅读了 int "anzahl"。现在我想使用这个号码。问题是:我无法从 while 循环外部访问 int。错误显示“使用未分配的局部变量”。我怎样才能使“anzahl”可用?这是我的代码:
int anzahl;
string uid = uidTextbox.Text;
string query1 = string.Format("SELECT Chip_Anzahl FROM chipTable WHERE Chip_ID = '{0}';",
uid);
try
{
sqlConnection = new SqlConnection(connectionString);
SqlCommand sqlCmd = new SqlCommand(query1, sqlConnection);
sqlCmd.CommandText = query1;
sqlConnection.Open();
SqlDataReader dataReader = sqlCmd.ExecuteReader();
while(dataReader.Read())
{
anzahl = dataReader.GetInt32(0);
}
dataReader.Close();
sqlConnection.Close();
}
catch (Exception E)
{
MessageBox.Show(E.ToString());
}
int newnumb = anzahl + 5;
MessageBox.Show(newnumb.toString());
【问题讨论】:
-
SQL Injection alert - 您应该不将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables
-
int anzahl = 0; -
另外,这似乎应该是
ExecuteScalar()的情况,而不是ExecuteReader()