Chcę wgrać plik Excela przez aplikację formularzy Windows w języku C# i chcę zaimportować dane do bazy danych (serwer Mysql). jak mogę to zrobić??? Utworzyłem formularz, który wymaga przesłania pliku excela do bazy danych mysql. jego dane wstawia się luzem do tabeli bazy danych.jak wgrać plik Excela do tabeli bazy danych SQL przy użyciu aplikacji z aplikacją C#
plikuMy Excel Zawierają kolumny jak USERID hasło first_name, last_name, USER_GROUP I MySQL Database (aster_users) zawierają wiele kolumn, takich jak identyfikator użytkownika, hasło first_name, last_name, USER_GROUP, kolejka, aktywny, CREATED_DATE, created_by rola ..
Muszę przesłać ten plik excela do mojej bazy danych, a inne kolumny będą puste lub puste, to nie jest sprawa.
Oto moja C# Kod:
using MySql.Data.MySqlClient;
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace UploadFileToDatabase
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
String MyConString = "SERVER=******;" +
"DATABASE=dbs;" +
"UID=root;" +
"PASSWORD=pwsd;" + "Convert Zero Datetime = True";
private void BtnSelectFile_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Text files | *.csv";
if (dlg.ShowDialog() == DialogResult.OK)
{
string fileName;
fileName = dlg.FileName;
txtfilepath.Text = fileName;
}
}
private void btnUpload_Click(object sender, EventArgs e)
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtfileparth.Text + ";Extended Properties=\"Excel 12.0;HDR=YES;\"";
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
OleDbCommand command = new OleDbCommand
("Select * FROM [Sheet1$]", connection);
connection.Open();
using (DbDataReader dr = command.ExecuteReader())
{
string sqlConnectionString = MyConString;
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.ColumnMappings.Add("[userid]", "userid");
bulkCopy.ColumnMappings.Add("password", "password");
bulkCopy.ColumnMappings.Add("first_name", "first_name");
bulkCopy.ColumnMappings.Add("last_name", "last_name");
bulkCopy.ColumnMappings.Add("user_group", "user_group");
bulkCopy.DestinationTableName = "aster_users";
bulkCopy.WriteToServer(dr);
MessageBox.Show("Upload Successfull!");
}
}
}
}
Oto jak ja tried.i dostaje komunikat o błędzie podobny do tego
Dodatkowe informacje: Zewnętrzny tabela nie ma oczekiwanego formatu.
w tej linii connection.Open();. Jak to zrobić?
Czy to twoje rozwiązanie, czy też wysłałeś błąd ponownie? –