2010-12-07 47 views
0
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(); 

這是內部循環,而在我上面的代碼。 如何訪問

「casename」

外while循環?我想如果要訪問外部的變量用它來放在HTML編輯(AJAX)的內容

回答

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

您可以在循環外聲明一個數組或字符串列表,並保存casename va在那裏。

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

現在他們都在數組中,並且您可以在任何地方訪問它。

如果有重複項,並且您需要唯一值,則可以在事後執行caseNames.Distinct().ToList()

+0

+1用於考慮casename將在while循環內多次設置並將值分配給數組這一事實。 – Fenton 2010-12-07 10:35:53

相關問題