添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
不拘小节的口罩  ·  C# ...·  1 年前    · 
刚分手的甘蔗  ·  SQL Server ...·  1 年前    · 
淡定的墨镜  ·  How to export ...·  1 年前    · 
俊逸的匕首  ·  Google Map : ...·  1 年前    · 

用C#想写一个直接将数据库查询得到的datatable,直接导出为csv格式的文件,拷贝到导出的操作类后,一直catch到的错误提示是对路径的访问被拒绝,一直排查原因,发现原来:FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite),path处所读取的字符串必须包含文件名称以及格式。现在贴完整代码,以供帮助到像我一样的初学者。

private void button1_Click(object sender, EventArgs e)
{
System.IO.StreamReader st;

//由于我的查询语句较长,采用了读取txt文本的方式后做查询操作。
st = new System.IO.StreamReader(Application.StartupPath + "\\SQL2.txt", System.Text.Encoding.Default);

string stingsql=st.ReadToEnd();
st.Close();

textBox1.Text = stingsql;
DataTable dt = new DataTable();
dt = bc.QueryCommand(stingsql);

string filepath = @"F:\病案导出备份\患者统计表.csv";//此处必须为路径加文件名称,否则
ImportToCSV(dt, filepath);
}

public static void ImportToCSV(DataTable dt, string filepath)
{
FileStream fs = null;
StreamWriter sw = null;
try
{
fs = new FileStream(filepath, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs, Encoding.Default);
string head = "";
//拼接列头
for (int cNum = 0; cNum < dt.Columns.Count; cNum++)
{
head += dt.Columns[cNum].ColumnName + ",";
}
//csv文件写入列头
sw.WriteLine(head);
string data = "";
//csv写入数据
for (int i = 0; i < dt.Rows.Count; i++)
{
string data2 = string.Empty;
//拼接行数据
for (int cNum1 = 0; cNum1 < dt.Columns.Count; cNum1++)
{
data2 = data2 + "\"" + dt.Rows[i][dt.Columns[cNum1].ColumnName].ToString() + "\",";
}
bool flag = data != data2;
if (flag)
{
sw.WriteLine(data2);
}
data = data2;

}
string msg = "数据被成功导出到:" + filepath;
MessageBox.Show(msg);
}
catch (Exception ex)
{
// logger.Error("导出csv失败!" + ex.Message);

MessageBox.Show("导出失败" + ex.Message);
return;
}
finally
{
if (sw != null)
{
sw.Close();
}
if (fs != null)
{
fs.Close();
}
sw = null;
fs = null;
}
}

环境:.net、spring.core、 C# 、MVC、IIS 8、Windows server standard 2016操作:读取本地文件夹现象:爆出如标题异常,因为是在后台调用接口处理本地文件(夹),前端相关接口显示500 Internal Server Error。简单理解下: 访问 路径 拒绝 =>没 访问 权限。解决方案:配置相关权限。①找到指定 路径 文件夹,右键【属性】②选择【安全】面板,点击组或用户名下【编辑】按钮。目的是给【Authenticated Users】用户或组配置完全控制权限,我这里已经配置 在遍历目录的时候出现“对 路径 "E:\System Volume Information"的 访问 拒绝 “这个问题。 百度了一下说是,某些 路径 是不可 访问 的,比如这个System Volume Information,每个磁盘下都有。 最后采用了,把隐藏文件过滤掉的方法: private static bool IsSystemHidden(DirectoryInfo dirInfo) File.Copy(yifile2, Path2); //将yifile2 文件拷到Path2中 一般出现这种错误,就需要看仔细一点,你本来copy的应该是文件级的,但是如果你的 yifile2 路径 是文件夹,就会报这个错了,比如 yifile2 为 E:\地区\备份\HH yifile3 为 E:\地区\备份\tif\001.tif 检查发现了这个问题,改为: File.Copy(yifile3, Path2); 就可以了 用 C# 想写一个直接将数据库查询得到的datatable,直接导出为csv格式的文件,拷贝到导出的操作类后,一直catch到的错误提示是对 路径 的泛微被 拒绝 ,一直排查原因,发现原来:FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite),path处所读取的字符串必须包含文件名称以及格式。现在贴完整代码,以供帮助到像我一样的初学者。pri... https://blog.csdn.net/you5552391/article/details/45245523 常详细信息: System.UnauthorizedAccessException: 对 路径 “……”的 访问 拒绝 。 原因是asp.net程序没有 访问 文件的修改权限,所以要给程序,添加对文件的写 访问 权 1.鼠标右键需要 访问 的文件,选择属性->安全->编辑 2.点击添加->高级->立即查找->Authenticated Users->确定 /// </summary> /// <param name="sourceDirectory"></param> /// <param name="targetDirectory"></param> public static b... 今天给程序点注释,突然就出现这种问题。在VS2017中,点击运行出现“对 路径 …的 访问 拒绝 ”的错误。发现没有权限, 访问 拒绝 。 发现是上一次的运行,没有完全退出。进入任务管理器中,发现了这个进程,但是竟然杀不死。 只有把vs 关闭,然后就可以杀掉了。... private bool GetChannelInfo() comCheckWindow.LoadCheckResult("准备加载项目通道信息", Color.FromName("Green")); XmlDocument proFile = new XmlDocument(); //读取... 先还原一下我出现错误的情景:我用 C# 控制台写了一个命名管道服务器,然后用ASP.NET写了一个客户端 访问 服务器,运行之后出现了下面的错误: 原因:服务器端的 访问 权限不够,所以是服务器端的问题,需要增加 访问 权限。(网上很多都说是文件夹的权限不够,情况不同,不适用于我这种情况) 解决办法: (1)在服务器端相应地方添加以下代码。 PipeSecurity pse = new PipeSec...