![](/img/trans.png)
[英]Accessing Fonts folder from console application with target framework 3.5
[英]Accessing folder in console application
我正在尝试编写一个将csv内容读入数据表的函数。
我在文件路径方面遇到异常,想知道我做错了什么。 我所做的就是创建控制台应用程序,并在项目中创建一个名为“ Data”的文件夹。
public DataTable ReadCSV(string filename)
{
DataTable dt = new DataTable();
string sql = "SELECT * FROM " + filename;
string path = "Data\\";
string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + filename + ";" + "Extended Properties='text;FMT=Delimited(;);HDR=YES'";
OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connstring);
System.Data.OleDb.OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
try
{
conn.Open();
da.Fill(dt);
}
catch (Exception ex)
{
Console.WriteLine(filename + "not found");
}
finally
{
conn.Close();
}
return dt;
}
}
在调试模式下运行时,我在Text可视化工具中的连接字符串:
Provider = Microsoft.Jet.OLEDB.4.0;数据源= Data \\ Positions.csv;扩展属性='文本; FMT =定界(;); HDR =是'
我要例外了
“ base {System.Data.Common.DbException} = {”'Data \\ Positions.csv'不是有效的路径。请确保路径名称拼写正确,并且已连接到文件所在的服务器。“ }
谁能指出我正确的方向? 我做控制台应用程序的经验有限,因此可能是我犯了一些格式错误。 谢谢
并在项目中创建一个名为“数据”的文件夹。
那不行 您的程序正在项目的bin \\ Debug子目录中运行。 它没有数据子目录。 您必须使用..\\..\\Data\\Positions.csv
来找到该文件。
好吧,这将立即解决您的问题,但是一旦将程序复制到另一台计算机上,它将不再有用。 那里没有..\\..\\Data
目录。 想一想您的用户将如何告诉您.csv文件的位置。 带有OpenFileDialog的GUI是一种友好的方式,但与控制台应用程序不太兼容。 这样做的标准方法是传递命令行参数。 Environment.CommandLine。 与典型用户不太兼容。 您必须自己权衡这些选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.