使用c #windows应用程序将访问数据库表导出到csv文件 [英] export access database table to csv file using c# windows application

查看:60
本文介绍了使用c #windows应用程序将访问数据库表导出到csv文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将以下代码用于导出访问数据库表到csv文件

但是收到错误

引用:

对象引用未设置为对象的实例。空引用异常未处理。



请为此提供解决方案。

这是我的代码

  private   void  button1_Click( object  sender ,EventArgs e)
{
OleDbConnection cnon = new OleDbConnection();
cnon.ConnectionString = @ Provider = Microsoft.ACE.OLEDB.12.0; Data Source = D:\\ \\WindowsFormsApplication1\barcode.accdb;
string query = SELECT * FROM tblbarcode ;
string sep = ;
string strFilePath = @ D:\\ \\WindowsFormsApplication1\export.txt;


StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath(strFilePath));


使用(OleDbCommand Cmd = new OleDbCommand(查询, cnon))
{
cnon.Open();
使用(OleDbDataReader dr = Cmd.ExecuteReader())
{
int fields = dr.FieldCount - 1 ;
while (dr.Read())
{
StringBuilder sb = new StringBuilder();
for int i = 0 ; i < = fields; i ++)
{
if (我!=字段)
{
sep = sep;
}
else
{
sep = ;
}
sb.Append(dr [i] .ToString()+ sep);

}
sw.WriteLine(sb.ToString());
}
}
}

}

解决方案

< blockquote>你不需要Server.MapPath,你已经有了物理路径。请执行以下操作

 使用(StreamWriter sw =  new  StreamWriter(strFilePath))
使用(OleDbCommand Cmd = new OleDbCommand(查询, cnon))
{
// 从数据库读取并写入文件

}


I'm trying with this below code for export access database table to csv file
but getting error

Quote:

"Object reference not set to an instance of an object." Null reference exception was unhandled.


Please provide solution for this.
this is my code

private void button1_Click(object sender, EventArgs e)
       {
           OleDbConnection cnon = new OleDbConnection();
           cnon.ConnectionString = @"Provider= Microsoft.ACE.OLEDB.12.0; Data Source=D:\WindowsFormsApplication1\barcode.accdb";
           string query = "SELECT * FROM tblbarcode";
           string sep = ",";
           string strFilePath = @"D:\WindowsFormsApplication1\export.txt";


           StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath(strFilePath));


           using (OleDbCommand Cmd = new OleDbCommand(query, cnon))
               {
                   cnon.Open();
                   using (OleDbDataReader dr = Cmd.ExecuteReader())
                   {
                       int fields = dr.FieldCount - 1;
                       while (dr.Read())
                       {
                           StringBuilder sb = new StringBuilder();
                           for (int i = 0; i <= fields; i++)
                           {
                               if (i != fields)
                               {
                                   sep = sep;
                               }
                               else
                               {
                                   sep = "";
                               }
                               sb.Append(dr[i].ToString() + sep);

                           }
                           sw.WriteLine(sb.ToString());
                       }
                   }
               }

       }

解决方案

you don't need Server.MapPath, you already have physical path. do as below

using(StreamWriter sw = new StreamWriter(strFilePath))
using (OleDbCommand Cmd = new OleDbCommand(query, cnon))
{
     // read from db and write file 

}


这篇关于使用c #windows应用程序将访问数据库表导出到csv文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆