繁体   English   中英

如何从数据库读取并使用C#写入文本文件?

[英]How to read from database and write into text file with C#?

如何从数据库读取并写入文本文件?

我想将我的数据库中的记录写入/复制(不确定要调用什么)到文本文件中。 数据库中的一行记录等于文本文件中的一行。 我在数据库中没有问题。

为了创建文本文件,它提到了FileStreamStreamWriter 我应该使用哪一个?

您正试图通过这个问题解决一些基本领域。 首先尝试通过一些谷歌搜索熟悉自己。 对于这个主题,有数百万资源可用。 但是,我正在为包含代码段的问题添加一些链接。

读数据库

文本文件操作

这是一个非常简单的例程,使用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");

还有其他方法,但这是短暂而甜蜜的,可能会指向正确的方向。 祝好运!

如果要创建新文件或覆盖/替换现有文件,可以使用:

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

如果要附加到现有文件,请使用:

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

像这样在文件中写一行:

writer.WriteLine(theLineOfTextFromYourDatabase);

完成后,请记住关闭文件:

writer.Close();

您可以通过两种方式编写数据。 第一种方法是使用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);

谢谢你的回复..

以下是将表中的记录写入文本文件的一些部分。 我设法提出了解决方案,但仅限于Access数据库。 现在,问题是,我想使用Microsoft SQL Server 2005数据库。 如何将其更改为SQL兼容?


          //create connection
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;
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();
reader.Close(); conn.Close();

PS:我不确定我是在这里讨论还是打开新帖呢?

基于敬畏的响应,我尝试更改与SQL Server的连接并将所有OleDB更改为SQL。 这就是我做的。 亲爱的,谢谢你的帮助!!

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();
      }
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM