2012-05-28 65 views
0
for (int i = 0; i < final_query.Length; i++) 
{ 
    con.Open(); 

    SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i]); 

    SqlDataReader rdr = cmd.ExecuteReader(); 

    while (rdr.Read()) 
    { 
     string PatientName = (string)rdr[" Data "]; 
    } 
} 

選擇我得到的錯誤從表中的for循環

的ExecuteReader:Connection屬性尚未初始化。

在這條線

SqlDataReader rdr = cmd.ExecuteReader(); 

我該如何解決

回答

4

您需要通過連接給SqlCommand

SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i], con); 

但也有其他錯誤:

  • 到con.Open(呼叫)應該是外部For循環
  • 使用和複用參數,而不是字符串連接

    con.Open(); 
    SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE [email protected]", con); 
    cmd.Parameters.AddWithValue("@data", 0); // Supposing final_query[i] is an Int32 
    for (int i = 0; i < final_query.Length; i++) 
    { 
        cmd.Parameters["@data"].Value = final_query[i]; 
        SqlDataReader rdr = cmd.ExecuteReader(); 
        while (rdr.Read()) 
        { 
         string PatientName = (string)rdr[" Data "]; 
        } 
    } 
    

,它仍然是不明確你所想象一下第一輪後與PatientName做

+0

我會做後,另一個操作,但我需要從表中選擇第一個 –

0

您ARNT告訴SqlCommand的使用連接CON 嘗試

SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i], con); 

雖然看起來這是不是很好的編碼,並可以使用一些重新設計....