如何访问外部的字符串变量

时间:2010-12-07 10:24:46

标签: c# asp.net

 public void Button1_Click(object sender, EventArgs e)
    {


        String a = DropDownList1.SelectedItem.Value;
        String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0');
        String c = TextBox1.Text.PadLeft(5, '0').ToString();
        String d = TextBox2.Text.ToString();
        String digit = a + b + c + d;


        try
        {
            OdbcConnection casetype = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;");
            casetype.Open();
            //************to get case type     
            string casetypequery = "select casename from casetype where skey=?";



            //************to get case type 
            OdbcCommand casetypecmd = new OdbcCommand(casetypequery, casetype);
            String casetypefromdropdown = DropDownList3.SelectedItem.ToString();
            casetypecmd.Parameters.AddWithValue("?", casetypefromdropdown);
            using (OdbcDataReader casetypeMyReader = casetypecmd.ExecuteReader())
            {
                while (casetypeMyReader.Read())
                {
                    String casename = casetypeMyReader["casename"].ToString();

                }
            }
        }

        catch (Exception ewa)
        {
            Response.Write(ewa);
        }

我无法访问

String casename = casetypeMyReader["casename"].ToString();

在我上面的代码中是while循环内部。 我该如何访问

  

'casename'

外面循环?我想用它来把内容放在HtmlEditor(ajax)中

2 个答案:

答案 0 :(得分:1)

如果要访问循环外部的变量,则需要在外部声明:

string casename = "some default value";
while (casetypeMyReader.Read())
{
    casename = casetypeMyReader["casename"].ToString();
}
// You can access casename here and it's value will either be the default one
// if the reader returned no rows or the last row being read.

答案 1 :(得分:1)

您可以在循环外声明一个数组或字符串列表,并将casename值保存在其中。

List<string> caseNames = new List<string>();
while (casetypeMyReader.Read())
{
    caseNames.Add(casetypeMyReader["casename"].ToString());
}

现在他们都在数组中,您可以随时随地访问它。

如果存在重复项,并且您需要唯一值,则可以在之后执行caseNames.Distinct().ToList()