簡體   English   中英

C#從項目文件夾加載文件

[英]C# Load file from project folder

我有個問題。 我有一個代碼可以從放置在文本框中的路徑加載xlsx,我的代碼如下所示:

string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + safefilename.Text + ";Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM [" + textBox_sheet.Text + "$]", conn); 

DataTable dt = new DataTable();

myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;

有什么方法可以從項目目錄將xlsx加載到datagridview? 因此,即使我切換到另一台計算機,也不必每次都放置路徑。

運行應用程序時,可執行文件所在的目錄將是當前目錄( .\\ )。

調試時,可執行文件位於bin\\Debug文件夾中。 您的項目目錄具有路徑..\\..\\

string PathConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\" + safefilename.Text + ";Extended Properties=Excel 12.0;";

當您移動應用程序的可執行文件時,這將不起作用, ..\\..\\僅指目錄層次結構中向上兩級的目錄。

您可能想要將xlsx文件放置在與可執行文件相同的目錄中,因為在移動可執行文件時更容易維護。

我的首選解決方案是將xlsx文件保留在AppData中的應用程序目錄中。 您可以在“安裝”應用程序時將文件移到那里。 然后,您可以通過執行以下操作獲得對目錄的引用:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MyApplication");

離開這個:

string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MyApplication", safefilename.Text) + ";Extended Properties=Excel 12.0;";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM