J'ai beaucoup de feuilles Excel dont les colonnes sont légèrement différentes, je veux importer toutes ces feuilles (une à la fois) dans ONE SQL TABLE. Je vais donner un exemple:Plusieurs feuilles Excel différentes dans une table SQL
Dire ive a écrit le programme requis et l'a appelé convertisseur Excel2sql. Alors Excel2sql prend une feuille Excel et créer une table de base de données avec les données de cette feuille Excel, par exemple dire que j'ai la feuille Excel suivante:
Excel_Sheet_1
-----------------------------
FirstName MiddleName LastName
John A. Smith
quand je lance Excel2sql (Excel_Sheet_1), une table de base de données devrait être CRÉÉ pour moi avec les données suivantes en elle:
FirstName MiddleName LastName
John A. Smith
maintenant, quand je lance mon programme à nouveau avec la feuille Excel suivante:
Excel_Sheet_2
-----------------------------
LastName FirstName MiddleName
wolf Kerry M.
i doit obtenir les éléments suivants UP DAT table db:
FirstName MiddleName LastName
John A. Smith
Kerry M. wolf
Notez qu'il a ajouté les données de la feuille Excel 2 dans la table de base de données existante. Il a fait une sorte de correspondance entre les colonnes de db et les colonnes de la feuille Excel 2 pour ajouter les données de manière appropriée.
Maintenant, si je lance à nouveau mon programme avec la feuille Excel suivante:
Sheet 3
--------
PhoneNumber LastName MiddleName FirstName
232-232 Lame K. Phoebe
je devrais obtenir la table db suivante:
FirstName MiddleName LastName PhoneNumber
John A. Smith Null
Kerry M. wolf Null
Phoebe K. Lame 232-232
Je veux que le code pour le faire de façon dynamique, i Par exemple, n'importe qui peut utiliser mon code, lui donner une feuille Excel comme entrée, mon code va alors créer pour lui une table de données sql et chaque fois qu'un utilisateur lui donne une feuille excel, il devrait mettre à jour la table sql déjà créée.
S'il vous plaît j'ai vraiment besoin de toute l'aide que je peux obtenir. Im très nouveau à ceci. J'ai écrit un code primitif qui télécharge simplement une feuille Excel dans une base de données déjà existante. (Ce qui est pas ce que je veux, mais je devais commencer quelque part)
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void insertdata_Click(object sender, EventArgs e)
{
//-----------------connection to excel=--------------------------
OleDbConnection oconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("example.xls") + ";Extended Properties=Excel 8.0");
try
{
//-----------------Commad to get all columns---------------------
OleDbCommand ocmd = new OleDbCommand("select * from [Sheet1$]", oconn);
//-----------------open the connection-----------------------
oconn.Open();
//-----------------execute the command ----------------------
OleDbDataReader odr = ocmd.ExecuteReader();
string fname = "";
string lname = "";
string mobnum = "";
//-----------------read from the datareader-------------------
while (odr.Read())
{
//-----------------insert into the db table ------------------
insertdataintosql(fname, lname, mobnum);
}
oconn.Close();
}
catch (DataException ee)
{
lblmsg.Text = ee.Message;
}
finally
{
lblmsg.Text = "Data Inserted Sucessfully";
}
}
public void insertdataintosql(string fname, string lname, string mobnum)
{
//-----------------connection to sql database----------------
SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes");
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into dbtable(fname,lname,mobnum) values(@fname,@lname,@mobnum)";
cmd.Parameters.Add("@fname", SqlDbType.NVarChar).Value = fname;
cmd.Parameters.Add("@lname", SqlDbType.NVarChar).Value = lname;
cmd.Parameters.Add("@mobnum", SqlDbType.NVarChar).Value = mobnum;
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
Encore une fois le ive code écrit est pas ce que je veux, pouvez-vous s'il vous plaît me aider à le modifier pour obtenir les exigences que je veux!
Merci d'avance :)