[英]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.