ボタンをクリックすると、ExcelファイルをSQL Serverテーブルにエクスポートしようとしています。私の次の機能は、OpenFileDialog
てExcelファイルをつかむ、それを選択してからに関連するコンテンツをアップロードするだろうものでなければならないものですC#ボタンでSQL Server ExpressにExcelをクリック
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True";
string query = "CREATE TABLE [dbo].[" + textBox1.Text + "](" + "[Code] [varchar] (7) NOT NULL," +
"[Description] [varchar] (38) NOT NULL," + "[NDC] [varchar] (12) NULL, " +
"[Supplier Code] [varchar] (38) NOT NULL," + "[UOM] [varchar] (8) NULL," + "[Size] [varchar] (8) NULL,)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
:まず私は、クリック時にテーブルを作成することになり、私の最初のボタンを作成しました
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ope = new OpenFileDialog();
ope.Filter = "Excel Files |*.xlsx;*.xlsm";
if (ope.ShowDialog() == DialogResult.Cancel)
return;
FileStream stream = new FileStream(ope.FileName, FileMode.Open);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
DataClasses1DataContext conn = new DataClasses1DataContext();
foreach (DataTable table in result.Tables)
{
foreach (DataRow dr in table.Rows)
{
test addtable = new test()
{
test_id = Convert.ToString(result[0]);
test_name = Convert.ToString(dr[1]);
};
conn.tests.inInsertOnSubmit(addtable);
}
}
}
私の問題は、それが動作するということですが、私は私の最初のボタンのクリックから作成されたテーブルとのリレーションシップを作成した場合、現在、それだけで動作します。私のボタンクリックabove.Thisから作成されたテーブルは、機能の重要な部分であります私のC#コードで。たとえば。私は私のSQL Serverテーブルから "test_id"と "test_name"という名前の列名を持っているとしましょう。私はそのテーブルをつかんで、C#コードに入れて列名を一致させなければなりません。私が目指しているのは、ボタンをクリックしてテーブルを作成し、その後、レコードをいくつかのレコードからデータを読み込むたびにそのテーブルにエクスポートするということです。これは非常に不便です。私は、データベース管理者からの対話を排除したい。私がしたいことは、テーブルを作成し、コード内で手作業で関係を作成することなく、同じテーブルにExcelファイルをエクスポートすることです。追加情報:すべての個々のExcelシートは、毎回同じ列セットを持ちます。同じままです。それが役に立たない場合はわからない
Excelのヘッダーが常に列の名前と一致しないことを意味しますか? – McNets
受け取ったExcelファイルは常に同じものですが、このプログラムの場合は、以前の関係をC#コード内に作成することなく、Excelファイルをデータベースにエクスポートする方法を探しています。したがって、本質的には、ExcelファイルをMSSQLテーブルにエクスポートする方法を探しています – Jevon
各Excelファイルごとに1つのテーブルが必要ですか、すべてのファイルが同じテーブルを共有しますか? – McNets