Как читать из базы данных и записывать в текстовый файл с помощью C #? - PullRequest
2 голосов
/ 01 сентября 2009

Как читать из базы данных и записывать в текстовый файл?

Я хочу записать / скопировать (не знаю, как позвонить) запись из моей базы данных в текстовый файл. Одна запись строки в базе данных равна одной строке в текстовом файле. У меня нет проблем в базе данных.

Для создания текстового файла упоминаются FileStream и StreamWriter. Какой я должен использовать?

Ответы [ 6 ]

3 голосов
/ 01 сентября 2009

Вы пытаетесь решить некоторые основные вопросы с помощью этого вопроса. Сначала попробуйте познакомиться с поиском в Google. По этим темам доступны миллионы ресурсов. Однако я добавляю несколько ссылок на ваши вопросы, которые содержат фрагменты кода.

Чтение базы данных

Операции с текстовыми файлами

1 голос
/ 04 сентября 2009

На основании ответа awe я пытаюсь изменить соединение с SQL Server и изменить все OleDB на SQL. Вот что я сделал. Дорогие все, спасибо за вашу помощь !!

<code>using (StreamWriter tw = File.AppendText("c:\INMS.txt"))
  {
      using (SqlDataReader reader = cmd.ExecuteReader())
      {
          tw.WriteLine("id, ip address, message, datetime");
          while (reader.Read())
          {
              tw.Write(reader["id"].ToString());
              tw.Write(", " + reader["ip"].ToString());
              tw.Write(", " + reader["msg"].ToString());
              tw.WriteLine(", " + reader["date"].ToString());
          }
          tw.WriteLine("Report Generate at : " + DateTime.Now);
          tw.WriteLine("---------------------------------");
          tw.Close();
          reader.Close();
      }
  }
1 голос
/ 03 сентября 2009

Спасибо за ответ ..

Вот некоторые части записи записей из таблицы в текстовый файл. Мне удалось предложить решение, но только для базы данных Access. Теперь проблема в том, что я хочу использовать базу данных Microsoft SQL Server 2005. Как я могу изменить его на SQL-совместимый?

<code>
          //create connection<br>
            string connString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Status.mdb";
            OleDbConnection conn = new OleDbConnection(connString);
          //command
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            cmd.CommandText = "tblOutbox";
            cmd.CommandType = CommandType.TableDirect;<br>
            conn.Open();
          //write into text file
            StreamWriter tw = File.AppendText("c:\INMS.txt");
            OleDbDataReader reader = cmd.ExecuteReader();
            tw.WriteLine("id, ip_add, message, datetime");
            while (reader.Read())
            {
                tw.Write(reader["id"].ToString());
                tw.Write(", " + reader["ip_add"].ToString());
                tw.Write(", " + reader["message"].ToString());
                tw.WriteLine(", " + reader["datetime"].ToString());
            }
            tw.WriteLine(DateTime.Now);
            tw.WriteLine("---------------------------------");
            tw.Close();<br>
            reader.Close();
            conn.Close();<br>

PS: Я не уверен, стоит ли мне обсуждать это здесь или открыть новый пост?

1 голос
/ 01 сентября 2009

Вы можете записать данные двумя способами. Первым было бы использовать Dataset.WriteXMl, который записал бы весь набор данных на диск. Если вы ищете только текст без тегов, то StreamWriter - лучший путь вперед. Вы бы сделали что-то вроде этого:

outputFS= new FileStream(filepath, FileMode.Create);
outputwriter = new StreamWriter(outputFS);
string totalString = "";

DataRow row = dt.Rows[dt.Rows.Count - 1];    
foreach (DataColumn col in row.Table.Columns)
{
    //Append each item to the string.
}

outputwriter .WriteLine(totalString);
1 голос
/ 01 сентября 2009

Если вы собираетесь создать новый файл или перезаписать / заменить существующий файл, вы можете использовать:

System.IO.StreamWriter writer = System.IO.File.CreateText(filename);

Если вы хотите добавить к существующему файлу, используйте:

System.IO.StreamWriter writer = System.IO.File.AppendText(filename);

Запишите строку в файл следующим образом:

writer.WriteLine(theLineOfTextFromYourDatabase);

Когда закончите, не забудьте закрыть файл:

writer.Close();
1 голос
/ 01 сентября 2009

Вот очень простая процедура, использующая класс DataSet для записи данных, которые вы извлекли из базы данных, в файл XML:

DataSet dsMyData = FunctionToGetDataSet("My SQL string");

if(dsMyData.Tables.Count > 0)
{
    dsMyData.WriteXml("C:\Path\To\Your\Data\File.xml");
}

Вы можете прочитать данные, которые вы сохранили в файле XML, например:

dsMyData.ReadXml("C:\Path\To\Your\Data\File.xml");

Есть и другие способы, но они короткие и приятные и могут указать вам верное направление. Удачи!

...