C# 找不到可安装的ISAM

C# 找不到可安装的ISAM,c#,.net,sql-server-2008,excel-2010,C#,.net,Sql Server 2008,Excel 2010,我正在尝试使用C在.net中创建一个程序,用于上载excel文件、读取它并将记录excel文件从excel数据添加到sql server数据库。 执行此操作时,我遇到一个错误:找不到可安装的ISAM 有人能帮我解决这个问题吗 或者可以提供一些示例代码以不同的方式执行此类赋值 protected void Button1_Click(object sender, EventArgs e) { String excelConnectionString1; St

我正在尝试使用C在.net中创建一个程序,用于上载excel文件、读取它并将记录excel文件从excel数据添加到sql server数据库。 执行此操作时,我遇到一个错误:找不到可安装的ISAM

有人能帮我解决这个问题吗

或者可以提供一些示例代码以不同的方式执行此类赋值

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();
                    }
                }
            }
        }
    }
}

}

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.WebControl;使用System.Data.SqlClient;使用系统数据;使用System.Data.OleDb;命名空间WebApplication1{公共部分类WebForm1:System.Web.UI.Page{受保护的无效页面\加载对象发送方,EventArgs e{}我在我的问题中添加了代码?你能检查一下并帮我找到错误吗?即使你可以建议我,如果有什么问题,你能把代码发布在这里吗?这样人们就可以看到可能存在的问题。