使用c #windows应用程序将访问数据库表导出到csv文件 [英] export access database table to csv file using c# windows application
本文介绍了使用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屋!
查看全文