在做数据导入的时候需要创建DSN,找了一种方法创建,但是好像在Web项目中不大管用,估计是权限不够.如果是在Web项目中需要DSN的话,一定要建个系统的DSN才行.以下是在Window程序里面创建DBF数据源成功的代码.
private bool CreateDSN(string dSNName,string strAttr)
{
ODBCTool.DsnClass ObjDsn = new ODBCTool.DsnClass();
string DsnName,DsnDriver,SerName,DbName,User,PWD,DsnDesc,ODBCAttr;
bool Silent = true; //是否显示设置对话框.ture 为不显示,否则需要在ODBCATTR参数中设置.
DsnName = dSNName; //DSN的名称
DsnDriver = "Microsoft dBase VFP Driver (*.dbf)"; //DBF驱动,可以用其它.
SerName = ""; //数据库服务器 DBF没有用
DbName = ""; //库名
User = null; //用户名
PWD = null; //密码
DsnDesc = "这是我的DNS"; //DSN的描述
ODBCAttr = strAttr; //后面详细说明
return ObjDsn.CreateDSN( ref DsnName,ref DsnDriver,ref SerName,ref DbName,ref User,ref PWD,ref DsnDesc,ref Silent,ref ODBCAttr );
}
其中ODBCATTR 这个参数是可以多个组合.可以去注册表目录:
HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBC.INI/ DSN名称
找对应的属性.例: ODBCAttr = " SourceDB=F:/;Collate=Machine"; 设置DBF的访问目录和排序序列.
以上代码只能创建用户级DSN,一直没有找到如何创建系统DSN的方法,郁闷. ):