程序读取路径异常:指定桌面路径却访问程序文件夹问题排查
问题分析与解决
核心问题
你代码里的filePath变量没有正确获取到PATHTEXTBOX.Text的值,导致连接字符串里的数据源路径不是你选择的桌面路径,而是程序默认的工作目录(安装目录)。你已经用MessageBox.Show(PATHTEXTBOX.Text)确认输入框里的路径是正确的,但未将该值赋值给filePath。
修正后的代码
MessageBox.Show(PATHTEXTBOX.Text); // 将输入框的路径赋值给filePath string filePath = PATHTEXTBOX.Text; string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath; string query = "select * from Vendors"; OleDbConnection connect = new OleDbConnection(connString); OleDbCommand command = new OleDbCommand(query, connect); connect.Open(); OleDbDataReader reader = command.ExecuteReader(); DataTable dataTable = new DataTable(); dataTable.Load(reader); dataGridView1.DataSource = dataTable.DefaultView; connect.Close();
额外优化建议
建议使用using语句自动释放数据库连接资源,避免手动关闭可能遗漏的情况:
MessageBox.Show(PATHTEXTBOX.Text); string filePath = PATHTEXTBOX.Text; string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath; string query = "select * from Vendors"; using (OleDbConnection connect = new OleDbConnection(connString)) { OleDbCommand command = new OleDbCommand(query, connect); connect.Open(); using (OleDbDataReader reader = command.ExecuteReader()) { DataTable dataTable = new DataTable(); dataTable.Load(reader); dataGridView1.DataSource = dataTable.DefaultView; } }
内容的提问来源于stack exchange,提问作者Big72Red
相关产品推荐
相关产品推荐

