2013-04-26 3 views
3

Я пытаюсь создать программу в .net с помощью C# для загрузки файла excel, чтения его и добавления файла excel файла в базу данных sql-сервера из excel-данных. При этом у меня есть ошибка: не удалось найти устанавливаемый ISAM?Не удалось найти устанавливаемый 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(); 
        } 
       } 
      } 
     } 
    } 
} 

}

+0

Не могли бы вы опубликовать код здесь? Чтобы люди могли посмотреть, что может быть проблемой. –

ответ

6

Там нет 64-разрядной версии драйверов Jet OLEDB, так что если вы работаете это на 64 разрядную ОС может потребоваться целевой x86 в приложении .NET, а не любой процессоре.

Или

Эта ошибка также возникает, когда синтаксис строки подключения неверен. Это обычно происходит при использовании нескольких параметров расширенных свойств. Ниже приведен пример:

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" 
+0

Я уже пытался изменить конфигурацию на x86, но есть только опция любого процессора и даже я не мог добавить новую цель x86. – Diwash

+0

Вы проверили второе решение, которое я разместил? –

+0

Я проверил строку подключения и много раз менял ее, но все же такая же проблема возникает ... когда я запускаю код, он показывает мне ошибку в: – Diwash

Смежные вопросы