日期:2014-05-19  浏览次数:20826 次

用C#创建一个ACCESS文件的动态路径问题!
我有一个程序,用户可以动态地创建ACCESS的数据库文件。。
                        ADOX.CatalogClass   cat   =   new   ADOX.CatalogClass();
                        cat.Create( "Provider=Microsoft.Jet.OLEDB.4.0; "   +   @ "Data   Source=f:\project\abc.mdb; "   +   "Jet   OLEDB:Engine   Type=5 ");
                          cat   =   null;
                          MessageBox.Show( "OK ");

这样可以创建成功,但是如果我要求用户可以随意在任何目录下添加一个MDB文件。

下面是我写的代码,检查N遍了,都感觉没有错。。但就是报错说”找不到可安装的ISAM“

代码如下

public   string   datasource,path,filename;

datasource   =   "@ "   + ' " '+   "Data   Source= "   +   path   +   filename   +   "; "+ ' " ';

ADOX.CatalogClass   cat   =   new   ADOX.CatalogClass();
                        cat.Create( "Provider=Microsoft.Jet.OLEDB.4.0; "   +   datasource   +   "Jet   OLEDB:Engine   Type=5 ");
                          cat   =   null;
                          MessageBox.Show( "OK ");


为什么?我用MessageBox.show方法检查过,整个ConnectString两者之间是一样的。。但就是报错。
分不多。给50吧!~

------解决方案--------------------
string datasource = path + filename;
cat.Create( "Provider=Microsoft.Jet.OLEDB.4.0;@Data Source= " + datasource + "; ");
=======================================================
string datasource = path + filename;
cat.Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + datasource + "; ");

不要那个@,就算要你的位置也不对
------解决方案--------------------
不要那个@试试