【发布时间】:2013-09-19 15:43:53
【问题描述】:
我正在尝试使用 case 语句为名为“query”的变量赋值。根据组合框的值,查询的值会发生变化。我在我的方法中分配了“查询”变量,并且只想在方法中使用它。我收到一条错误消息,指出“查询”变量未分配,即使它是在方法顶部分配的。我有一个解决方法,但我不知道为什么会这样?任何见解都会有所帮助。
这是代码。
public void ExportKml()
{
string query;
switch (txtTable.SelectedIndex)
{
case 0:
query = "Select * from dbo.HyacinthWaterBodyZones";
break;
case 1:
query="Select * from lchcd.privateWatersFinal where waterbodypolygon is not null";
break;
case 2:
query = "Select * from lchcd.publicWatersFinal where waterbodypolygon is not null";
break;
}
cs.Open();
SqlCommand cmd = new SqlCommand(query, cs); <<--Error Message
SqlDataReader polygon = cmd.ExecuteReader();
}
行内的“查询”变量: SqlCommand cmd = new SqlComman(query,cs) 给出一个错误,说明它是未分配的局部变量。
【问题讨论】:
-
虽然您选择的索引可能永远逻辑上是 0、1 或 2 以外的任何值,但编译器无法知道这一点。您需要使用虚拟值初始化变量,或者添加一个
case else将其设置为虚拟值。
标签: c# visual-studio-2010 case-statement