Mon but ici était de créer une application d'importation pour importer des feuilles de calcul Excel dans une base de données de serveur SQL. Le problème que j'ai rencontré est d'obtenir les colonnes de nombre que j'avais besoin d'insérer dans la base de données et de les nommer dynamiquement selon la feuille de calcul Excel.
L'application sera utilisée sur différentes feuilles de calcul et les noms de colonne ne doivent pas être codés en dur. C'est le code que j'ai utilisé qui a géré la dernière phase de l'application où toutes les données de la feuille de calcul sont insérées dans la base de données en SQL.
//Import Button
private void button5_Click(object sender, EventArgs e)
{
string createColumns = "";
string columns = "";
string rows = "";
var grid = (DataTable)dataGridView3.DataSource;
for (int i = 0; i < grid.Columns.Count; i++)
{
if (i == grid.Columns.Count - 1)
{
createColumns += "[" + grid.Columns[i].ToString() + "] varchar(200) NULL";
columns += "[" + grid.Columns[i].ToString() + "]";
}
else
{
columns += "[" + grid.Columns[i].ToString() + "],";
createColumns += "[" + grid.Columns[i].ToString() + "] varchar(200) NULL,";
}
}
string createTable = string.Format("Create table [{0}] ({1})", textBox1.Text, createColumns);
rows = string.Format("Insert Into[{0}]({1})", textBox1.Text, columns);
for (int i = 0; i < grid.Rows.Count; i++)
{
string row = "";
for (int c = 0; c < grid.Columns.Count; c++)
{
if (c == grid.Columns.Count - 1)
row += "'" + grid.Rows[i][c].ToString() + "'";
else
row += "'" + grid.Rows[i][c].ToString() + "', ";
}
if (i == grid.Rows.Count - 1)
rows += string.Format(" ({0});", row);
else
{
if (i == 0)
{
rows += " Values";
}
rows += string.Format(" ({0}),", row);
}
}
string s = "Integrated Security = SSPI;Persist Security Info = False;Data Source = " +
ServerName.Text + "; Initial Catalog = " +
Databases.Text;
SqlConnection conn = new SqlConnection(s);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = createTable;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SqlCommand cmd2 = new SqlCommand(rows, conn);
cmd2.CommandType = CommandType.Text;
conn.Open();
cmd2.ExecuteNonQuery();
conn.Close();
Application.Exit();
}
Vous devez nous montrer ce que vous avez essayé jusqu'ici avec quel problème vous êtes confronté avec cela. –
l'analyse des noms de colonne ne devrait pas être si mauvaise - vous devez élaborer sur le problème que vous rencontrez – BugFinder
La tâche à accomplir est de créer une application d'importation pour la feuille de calcul Excel à importer dans la base de données SQL. Mais j'ai réussi à bien faire les choses. Je vais essayer de soumettre le code. –