如何解决;来自外部数据库驱动程序的意外错误“;(后跟中文字符)在SQL中导出巨大excel数据时
当我尝试将excel文件中的数据导入SQL数据库时,出现如下错误: 外部数据库驱动程序出现意外错误(霰呫潈ూŐీ五十) 我的代码:如何解决;来自外部数据库驱动程序的意外错误“;(后跟中文字符)在SQL中导出巨大excel数据时,sql,excel,import,odbc,oledb,Sql,Excel,Import,Odbc,Oledb,当我尝试将excel文件中的数据导入SQL数据库时,出现如下错误: 外部数据库驱动程序出现意外错误(霰呫潈ూŐీ五十) 我的代码: private void Import(string fileFullPath, string fileName, StreamWriter writer) { string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileFullPath +
private void Import(string fileFullPath, string fileName, StreamWriter writer)
{
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileFullPath +
";Extended Properties=" + (char)34 + "Excel 12.0;HDR=YES;" + (char)34;
using (OleDbConnection cn = new OleDbConnection(ConnectionString))
{
cn.Open();
DataTable dbSchema = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dbSchema == null || dbSchema.Rows.Count < 1)
{
writer.WriteLine("Error: Could not determine the name.");
throw new Exception("Error: Could not determine the name.");
}
if (dbSchema.Rows.Count > 0)
{
Hashtable objHashTableOptionPool = new Hashtable();
foreach (DataRow objDataRow in dbSchema.Rows)
{
if (objDataRow["TABLE_NAME"].ToString() != "Participants$")
{
string name = objDataRow["TABLE_NAME"].ToString();
string checkname = string.Empty;
if (name.Substring((name.Length - 1), 1) == "'")
{
checkname = name.Substring(0, (name.Length - 1));
}
else
{
checkname = name;
}
string Rname = name.Substring((checkname.Length - 1), 1);
if (Rname != "$")
{
continue;
}
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + name + "]", cn);
DataTable dt = new DataTable(name);
da.Fill(dt); //getting error here
}
}
}
}
}
private void导入(字符串fileFullPath、字符串文件名、StreamWriter)
{
string ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+fileFullPath”+
“扩展属性=“+(字符)34+”Excel 12.0;HDR=YES;“+(字符)34;
使用(OLEDB连接cn=新OLEDB连接(连接字符串))
{
cn.Open();
DataTable dbSchema=cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
if(dbSchema==null | | dbSchema.Rows.Count<1)
{
writer.WriteLine(“错误:无法确定名称。”);
抛出新异常(“错误:无法确定名称。”);
}
如果(dbSchema.Rows.Count>0)
{
Hashtable objHashTableOptionPool=新Hashtable();
foreach(dbSchema.Rows中的DataRow objDataRow)
{
if(objDataRow[“表名”].ToString()!=“参与者$”)
{
string name=objDataRow[“TABLE_name”]。ToString();
string checkname=string.Empty;
if(name.Substring((name.Length-1),1)=“”)
{
checkname=name.Substring(0,(name.Length-1));
}
其他的
{
checkname=名称;
}
字符串Rname=name.Substring((checkname.Length-1),1);
如果(Rname!=“$”)
{
继续;
}
OleDbDataAdapter da=新的OleDbDataAdapter(“从[“+name+”]”中选择*,cn);
DataTable dt=新的DataTable(名称);
da.Fill(dt);//此处获取错误
}
}
}
}
}
使用数据适配器填充数据表时出错。请检查ODBC驱动程序权限。ODBC的OLEDB提供程序可能不可用。请下载并安装。是C#还是其他语言?是。。这是C#语言。但我可以在其他地方使用相同的oledb提供程序导入数据。我希望供应商没有问题。谢谢@Athul。。问题来自我尝试上载时的excel文件。这些柱子相互重叠。