Windowsフォームアプリケーションを使用してExcelファイルをC#にアップロードし、データベース(Mysqlサーバ)にインポートしたいと考えています。どうやってやるの???私はmysqlデータベースにExcelファイルをアップロードする必要があるフォームを作成しました。その一括データをデータベーステーブルに挿入します。C#Windowsフォームアプリケーションを使用してExcelデータベーステーブルにExcelファイルをアップロードする方法
私のExcelファイルは、ユーザーID、パスワード、FIRST_NAME、LAST_NAME、USER_GROUPと MySQLデータベーステーブル(aster_users)のような列を含むが、ユーザーID、パスワード、FIRST_NAME、LAST_NAME、USER_GROUP、キュー、アクティブ、created_date、CREATED_BY、役割のような多くの列が含まれています..
私はそのエクセルファイルをデータベースにアップロードする必要があり、他の列は空でも空でも問題はありません。
である私のC#のコードです:外部:ここ
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!");
}
}
}
}
は、私はこの
のようなエラーメッセージの追加情報を得たtried.i方法ですテーブルが期待どおりのフォーマットではありません。
この行connection.Open();。これはどうすれば完了できますか?
これはあなたのソリューションですか、あなたは再びエラーを投稿しましたか? –