Har skrivit en liten kul sak som ska importera en excelfil till databasen, men får den inte att fungera riktigt, vilket inte är lika kul. Hoppas någon kan hjälpa mig. Jag får följande felmeddelande: Problemet är att du med den queryn ber SQL-servern att hämta från 'Excel 8.0...', men den syntaxen är för OleDB-drivern. Tackar, det gjorde ju susen :) Syntax : Server.databas.ägare.tabellImportproblem
Invalid object name 'Excel 8.0;DATABASE=C:\testfil.xls;HDR=No;IMEX=1.Sheet1$'.
Koden är:
<code>
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
SqlConnection conn;
SqlCommand cmd;
void Import_Excel()
{
string Filnamn = File1.PostedFile.FileName;
conn = new SqlConnection("Server='localhost';trusted_connection=true;Database='Test'");
try
{
cmd = new SqlCommand("INSERT INTO Test (Nummer, Lista) SELECT F1, F2 FROM [Excel 8.0;DATABASE=" + Filnamn + ";HDR=No;IMEX=1].[Sheet1$];", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Msg.Text = "Det gick bra!";
}
catch (Exception ex)
{
Msg.Text = ex.Message;
}
finally
{
conn.Close();
}
}
void Button1_Click(object sender, EventArgs e)
{
Import_Excel();
}
</script>
<html>
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<input id="File1" type="file" runat="server" />
<br />
<br />
<asp:Button ID="Button1" Runat="server" Text="Importera" OnClick="Button1_Click" />
<br />
<br />
<asp:Label ID="Msg" Runat="server"></asp:Label>
</form>
</body>
</html>
</code>Sv: Importproblem
Du kan däremot göra följande:
cmd = new SqlCommand("INSERT INTO Test (Nummer, Lista) SELECT F1, F2 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=\"" + Filnamn + "\";Extended properties=Excel 5.0')...sheet1$", conn);
// MvH Björne
Sv:Importproblem
En liten bifråga för kunskapen bara, varför 3 punkter innan sheet? (Bara om du vet) :)Sv: Importproblem
Databasen är dokumentet = onödigt att ange
Ägare finns inte i Excel = onödigt att ange
Innebär:
Exceldokument...Sheet1
/micke