部分代码如下,是用C#写的,如果有人知道我万分感谢,vb的代码也行:
public bool ImportStuStandInfoToDB()
{
try
{
goPackage.Name = "ImportStuStandInfoToDB";
goPackage.Description = "导入学生基本信息DTS包";
goPackage.WriteCompletionStatusToNTEventLog = false;
goPackage.FailOnError = true;
goPackage.PackagePriorityClass = (DTS.DTSPackagePriorityClass)2;
goPackage.MaxConcurrentSteps = 4;
goPackage.LineageOptions = 0;
goPackage.UseTransaction = true;
goPackage.TransactionIsolationLevel = (DTS.DTSIsolationLevel)4096;
goPackage.AutoCommitTransaction = true;
goPackage.RepositoryMetadataOptions = 0;
goPackage.UseOLEDBServiceComponents = true;
goPackage.LogToSQLServer = false;
goPackage.LogServerFlags = 0;
goPackage.FailPackageOnLogFailure = false;
goPackage.ExplicitGlobalVariables = false;
goPackage.PackageType = 0;
DTS.Connection2 oConnection; //文件后缀名
string strFileFix;
strFileFix = this.strFilePath.Substring(this.strFilePath.Length-3);
strFileFix = strFileFix.ToUpper();
oConnection = null; //根据文件后缀名来决定连接类型
if (strFileFix == "MDB")
{
oConnection = (DTS.Connection2)goPackage.Connections.New("Microsoft.Jet.OLEDB.4.0");
oConnection.ConnectionProperties.Item("Mode").Value = 1;
}
else if ( strFileFix == "XLS" )
{
oConnection = (DTS.Connection2)goPackage.Connections.New("Microsoft.Jet.OLEDB.4.0");
oConnection.ConnectionProperties.Item("Extended Properties").Value = "Excel 8.0;HDR=YES;";
}
else if ( strFileFix == "DBC" )
{
//VFP的文件我不知道选什么数据源,我写了"VFPOLEDB.1",不过不对
oConnection = (DTS.Connection2)goPackage.Connections.New("VFPOLEDB.1");
}
//把要导入的文件的路径给连接的Data Source属性
oConnection.ConnectionProperties.Item("Data Source").Value = this.strFilePath;
//连接的名称
oConnection.Name = "连接1";
//连接的ID
oConnection.ID = 1;
oConnection.Reusable = true;
oConnection.ConnectImmediate = false;
//把要导入的文件的路径给连接的Data Source属性
oConnection.DataSource = this.strFilePath;
//失败时间
oConnection.ConnectionTimeout = 60;
oConnection.UseTrustedConnection = false;
oConnection.UseDSL = false;
//把连接加入到DTS包中
goPackage.Connections.Add((DTS.Connection)oConnection);
oConnection = null;
public bool ImportStuStandInfoToDB()
{
try
{
goPackage.Name = "ImportStuStandInfoToDB";
goPackage.Description = "导入学生基本信息DTS包";
goPackage.WriteCompletionStatusToNTEventLog = false;
goPackage.FailOnError = true;
goPackage.PackagePriorityClass = (DTS.DTSPackagePriorityClass)2;
goPackage.MaxConcurrentSteps = 4;
goPackage.LineageOptions = 0;
goPackage.UseTransaction = true;
goPackage.TransactionIsolationLevel = (DTS.DTSIsolationLevel)4096;
goPackage.AutoCommitTransaction = true;
goPackage.RepositoryMetadataOptions = 0;
goPackage.UseOLEDBServiceComponents = true;
goPackage.LogToSQLServer = false;
goPackage.LogServerFlags = 0;
goPackage.FailPackageOnLogFailure = false;
goPackage.ExplicitGlobalVariables = false;
goPackage.PackageType = 0;
DTS.Connection2 oConnection; //文件后缀名
string strFileFix;
strFileFix = this.strFilePath.Substring(this.strFilePath.Length-3);
strFileFix = strFileFix.ToUpper();
oConnection = null; //根据文件后缀名来决定连接类型
if (strFileFix == "MDB")
{
oConnection = (DTS.Connection2)goPackage.Connections.New("Microsoft.Jet.OLEDB.4.0");
oConnection.ConnectionProperties.Item("Mode").Value = 1;
}
else if ( strFileFix == "XLS" )
{
oConnection = (DTS.Connection2)goPackage.Connections.New("Microsoft.Jet.OLEDB.4.0");
oConnection.ConnectionProperties.Item("Extended Properties").Value = "Excel 8.0;HDR=YES;";
}
else if ( strFileFix == "DBC" )
{
//VFP的文件我不知道选什么数据源,我写了"VFPOLEDB.1",不过不对
oConnection = (DTS.Connection2)goPackage.Connections.New("VFPOLEDB.1");
}
//把要导入的文件的路径给连接的Data Source属性
oConnection.ConnectionProperties.Item("Data Source").Value = this.strFilePath;
//连接的名称
oConnection.Name = "连接1";
//连接的ID
oConnection.ID = 1;
oConnection.Reusable = true;
oConnection.ConnectImmediate = false;
//把要导入的文件的路径给连接的Data Source属性
oConnection.DataSource = this.strFilePath;
//失败时间
oConnection.ConnectionTimeout = 60;
oConnection.UseTrustedConnection = false;
oConnection.UseDSL = false;
//把连接加入到DTS包中
goPackage.Connections.Add((DTS.Connection)oConnection);
oConnection = null;
解决方案 »
- 数据库导入时出现问题
- 求条更新语句!
- 我下载的sql2005 managerment studio安装包,在vista下为何无法安装,这个安装包在xp下安装正常?
- 如何取出表中的数值进行计算
- Sqlserver,select top 100 from a 然后将这100条的Status标记为1,证明已读
- 更新多对应关系的表,fetch 太慢了!
- 一个插入表的问题~~~
- sql 高手过招 (万里长征最后一步了,帮我走完。。。)
- 请教:通过深度搜索算法实现数的遍历(急)
- 十万火急!如何查询两日期之间的数据
- 万分紧急啊!!疑难问题!!
- 装了sql server 2005,卸载这后就装不了sql server 2000?
先回答邹建的问题
我是在程序里动态生成了一个DTS包,用户数据源是不确定的,这个DTS包里的字段对应关系是在程序里指定并把对应关系存放到了SQL Server的一张表里,在SQL Server里生成的包不能做到这点。我也在SQL Server里手动生成了一个DTS包,当用到VFP做数据源的时候,它就需要DSN。我在程序里动态生成的DTS包,用户VFP数据文件的路径和名称不确定,这个DSN怎么做?能不能不用DSN连VFP?关于 JadyZhu(木独朱)的解决方案我们在以前做这个导入的时候就是这样做的,速度慢是一个方面,而且我们做的是WEB项目,要放到网络上,这样会给WEB服务器增加很大的负担。还有其他的办法吗?