C# OleDBConnection to Access 2010 - Error: Not a valid filename
C# OleDBConnection to Access 2010 - Error: Not a valid filename
感谢您抽出时间阅读!!!!对不起,我是一个完整的新手....
所以,我拼命尝试通过 VPN 连接到另一台计算机上的数据库。当我更改代码以指向本地文件时,没有问题,但是当我尝试联网 pc 时,我得到 An "unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll", "Additional information: Not a valid file name."
这是代码,任何想法都将不胜感激!!!! :)
private void btn_Load_Click(object sender, EventArgs e)
{
File.Copy("\\User2-pc\c\RetailM\That's Hot\recent.mdb", "\\User2-pc\c\PHIL_REPORT_PROGRAM\That's Hot\recent_copy.mdb", true);
btn_Load.Text = ("Loaded");
progressBar1.Value = (100);
}
private void btnReadAccess_Click(object sender, EventArgs e)
{
OleDbConnection conAccess = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\User2-pc\c\PHIL_REPORT_PROGRAM\That's Hot\recent_copy.mdb;Persist Security Info=False;");
string[] strArrays = this.datePickerFrom.Text.Split(new char[] { '/' });
string[] strArrays1 = this.datePickerTo.Text.Split(new char[] { '/' });
string[] text = new string[] { "SELECT Barcode,[description],cat1 ,cat2,discount as [Discount],cost_inc as [Price $],DocketLine.quantity as Sold, (rrp * DocketLine.quantity - discount ) as [Rev $], DocketLine.sales_tax as Goods_Tax FROM Docket,DocketLine,Stock WHERE Docket.docket_date >= #", strArrays[1], "/", strArrays[0], "/", strArrays[2], " ", this.timePickerFrom.Text, "# AND Docket.docket_date <= #", strArrays1[1], "/", strArrays1[0], "/", strArrays1[2], " ", this.timePickerTo.Text, "# and DocketLine.docket_id = Docket.docket_id and DocketLine.stock_id= Stock.stock_id" };
string str = string.Concat(text);
OleDbDataAdapter daAccess = new OleDbDataAdapter(new OleDbCommand(str, conAccess));
DataTable dataTable1 = new DataTable();
daAccess.Fill(dataTable1);
dgvAccess.DataSource = dataTable1;
decimal num = new decimal(0);
for (int i = 0; i < this.dgvAccess.Rows.Count; i++)
{
num = num + Convert.ToDecimal(this.dgvAccess.Rows[i].Cells[7].Value);
}
}
非常感谢您的宝贵时间
尝试用引号括起路径:
"\"\\User2-pc\c\RetailM\That's Hot\recent.mdb\"";
或使用简单的文件夹名称,例如 Hot
.
感谢您抽出时间阅读!!!!对不起,我是一个完整的新手....
所以,我拼命尝试通过 VPN 连接到另一台计算机上的数据库。当我更改代码以指向本地文件时,没有问题,但是当我尝试联网 pc 时,我得到 An "unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll", "Additional information: Not a valid file name."
这是代码,任何想法都将不胜感激!!!! :)
private void btn_Load_Click(object sender, EventArgs e)
{
File.Copy("\\User2-pc\c\RetailM\That's Hot\recent.mdb", "\\User2-pc\c\PHIL_REPORT_PROGRAM\That's Hot\recent_copy.mdb", true);
btn_Load.Text = ("Loaded");
progressBar1.Value = (100);
}
private void btnReadAccess_Click(object sender, EventArgs e)
{
OleDbConnection conAccess = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\User2-pc\c\PHIL_REPORT_PROGRAM\That's Hot\recent_copy.mdb;Persist Security Info=False;");
string[] strArrays = this.datePickerFrom.Text.Split(new char[] { '/' });
string[] strArrays1 = this.datePickerTo.Text.Split(new char[] { '/' });
string[] text = new string[] { "SELECT Barcode,[description],cat1 ,cat2,discount as [Discount],cost_inc as [Price $],DocketLine.quantity as Sold, (rrp * DocketLine.quantity - discount ) as [Rev $], DocketLine.sales_tax as Goods_Tax FROM Docket,DocketLine,Stock WHERE Docket.docket_date >= #", strArrays[1], "/", strArrays[0], "/", strArrays[2], " ", this.timePickerFrom.Text, "# AND Docket.docket_date <= #", strArrays1[1], "/", strArrays1[0], "/", strArrays1[2], " ", this.timePickerTo.Text, "# and DocketLine.docket_id = Docket.docket_id and DocketLine.stock_id= Stock.stock_id" };
string str = string.Concat(text);
OleDbDataAdapter daAccess = new OleDbDataAdapter(new OleDbCommand(str, conAccess));
DataTable dataTable1 = new DataTable();
daAccess.Fill(dataTable1);
dgvAccess.DataSource = dataTable1;
decimal num = new decimal(0);
for (int i = 0; i < this.dgvAccess.Rows.Count; i++)
{
num = num + Convert.ToDecimal(this.dgvAccess.Rows[i].Cells[7].Value);
}
}
非常感谢您的宝贵时间
尝试用引号括起路径:
"\"\\User2-pc\c\RetailM\That's Hot\recent.mdb\"";
或使用简单的文件夹名称,例如 Hot
.