2015-06-29 100 views
0

我一直在嘗試,仍然不知道如何解決此問題,不斷得到相同的錯誤。我想從數據庫中獲取數據到txt文件。從SQL閱讀器到數據表的數據 - 無效嘗試打電話在閱讀器關閉時閱讀

using (conn) 
{ 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand(command) 
    cmd.Connection = (SqlConnection)conn; 

    using (cmd) 
    { 
     SqlDataReader reader = cmd.ExecuteReader(); 
     using(reader) 
     { 
      while (reader.Read()) 
      { 
        dt.Load(reader); 
      } 
     } 

     using (StreamWriter sw = new StreamWriter(txtPath.Text + fileName)) 
     { 
      // write to text file from Datatable dt 
     } } 
+0

什麼是錯誤?夫婦關於代碼的事情應該以不同的方式完成。 cmd應該在使用線上定義,就像讀者一樣,類似於你定義的sw變量。我沒有看到dt的定義。 –

回答

2

嘗試insted的代碼,這樣的事情:

DataTable myDataTable = new DataTable(); 


     using (SqlConnection myConnection = new SqlConnection(yourDBconn) 
     { 
       yourDBconn.Open(); 
       using (SqlDataAdapter myAdapter = new SqlDataAdapter(strYourQuery, yourDBconn)) 
       { 
        myAdapter.Fill(myDataTable); 
       } 
      } 
     } 
+0

非常感謝! – petrppe

0

給你。測試。

var customers = new List<Tuple<int, string>>(); // the list of ID, Name 
using (var con = new SqlConnection("your connection string")) 
{ 
    using(SqlCommand cmd = new SqlCommand("select ID, Name from Customer", con)) 
    { 
     con.Open();  
     using(SqlDataReader reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       customers.Add(new Tuple<int, string>(
        (int)reader["ID"], reader["Name"].ToString())); 
      } 
     } 
    } 
} 
// Store customers to file