2015-06-29 2 views
0

Я продолжаю пытаться и до сих пор не знаю, как это исправить, продолжайте получать такую ​​же ошибку. Я хочу получить данные из базы данных в txt-файл.Данные от читателя SQL к datatable - Неверная попытка вызова Чтение, когда читатель закрыт

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

Try 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 
Смежные вопросы