找不到可安装的 ISAM
Posted
技术标签:
【中文标题】找不到可安装的 ISAM【英文标题】:Could not find installable ISAM 【发布时间】:2013-04-26 09:57:58 【问题描述】:我正在尝试使用 C# 在 .net 中创建程序,用于上传 excel 文件、读取它并将记录 excel 文件从 excel 数据添加到 sql server 数据库。 执行此操作时出现错误:?
谁能帮我解决这个问题?
或者可以提供一些示例代码以不同的方式进行此类分配?
protected void Button1_Click(object sender, EventArgs e)
String excelConnectionString1;
String fname = FileUpload1.PostedFile.FileName;
if (FileUpload1.PostedFile.FileName.EndsWith(".xls"))
String excelsheet;
FileUpload1.SaveAs(Server.MapPath("~/file/" + FileUpload1.FileName));
if (FileUpload1.PostedFile.FileName.EndsWith(".xls"))
excelConnectionString1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/file/" + FileUpload1.FileName) + ";Extended Properties=Excel 8.0;HDR=Yes;";
OleDbConnection myEcelConnection1 = new OleDbConnection(excelConnectionString1);
myEcelConnection1.Open();
if (txtsheet.Text.Length == 0)
lblmsg.Text = "Please Write File Name";
else
excelsheet = "[" + txtsheet.Text + "$" + "]";
string sheet = "Select * from [" + txtsheet.Text + "$" + "]";
OleDbCommand cmd1 = new OleDbCommand(sheet, myEcelConnection1);
cmd1.CommandType = CommandType.Text;
OleDbDataAdapter myAdapter1 = new OleDbDataAdapter(cmd1);
DataSet myDataSet1 = new DataSet();
myAdapter1.Fill(myDataSet1);
int a = myDataSet1.Tables[0].Rows.Count - 1;
string name;
string dob;
for (int i = 0; i <= a; i++)
name = myDataSet1.Tables[0].Rows[i].ItemArray[0].ToString();
dob = myDataSet1.Tables[0].Rows[i].ItemArray[1].ToString();
SqlConnection con = new SqlConnection("Connection String for Sql Server");
con.Open();
SqlCommand command = new SqlCommand("Insert into info(name,dob)values(@valname,@valdob)", con);
command.Parameters.Add("@valname", SqlDbType.VarChar, 50).Value = name;
command.Parameters.Add("@valdob", SqlDbType.VarChar, 50).Value = dob;
command.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(command);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
【问题讨论】:
你能把代码贴在这里吗?这样人们就可以看看可能是什么问题。 【参考方案1】:Jet OLEDB 驱动程序没有 64 位版本,因此如果您在 64 位操作系统上运行它,您可能需要在 .NET 应用程序中定位 x86 而不是任何 CPU。
或者
当连接字符串的语法不正确时也会产生这个错误。这通常在使用多个扩展属性参数时发生。下面是一个例子:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=e:\My Documents\Book20.xls;Extended Properties=""Excel 12.0;HDR=NO;IMEX=1"""
像这样更改连接字符串
ConnectionString=" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NAVEEN KUMAR\DOTNET\windows\WindowsApplication1\WindowsApplication1\123.xls;Excel 12.0 Xml;HDR=YES"
【讨论】:
我已经尝试将配置更改为 x86 但只有任何 cpu 的选项,甚至我无法添加 x86 的新目标。 你检查过我发布的第二个解决方案了吗? 我检查了连接字符串并更改了很多次,但仍然出现同样的问题......当我运行代码时它显示错误: 使用系统;使用 System.Collections.Generic;使用 System.Linq;使用 System.Web;使用 System.Web.UI;使用 System.Web.UI.WebControls;使用 System.Data.SqlClient;使用 System.Data;使用 System.Data.OleDb;命名空间 WebApplication1 public partial class WebForm1 : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) 我在我的问题中添加了代码?你能检查一下并帮我找出错误吗……如果有问题你也可以建议我以上是关于找不到可安装的 ISAM的主要内容,如果未能解决你的问题,请参考以下文章
在 excel 2007 vba 中找不到可安装的 ISAM