あなたはここを見ていますか?
https://www.connectionstrings.com/sql-server/
最も簡単な可能なシナリオ(保障なし)でそれを試してみてください。
サーバー= myServerAddress;データベース= myDataBase; Trusted_Connection = True;
私のマシン上のSQL Server DBにヒットするC#スクリプトです。
DGVにエクセル:SQL Serverへの
private void button1_Click(object sender, EventArgs e)
{
DataTable table = new DataTable();
string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"",
"C:\\Users\\Ryan\\Desktop\\Coding\\DOT.NET\\Samples C#\\Export DataGridView to SQL Server Table\\Import_List.xls");
using (OleDbConnection dbConnection = new OleDbConnection(strConn))
{
using (OleDbDataAdapter dbAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", dbConnection)) //rename sheet if required!
dbAdapter.Fill(table);
dataGridView1.DataSource = table;
int rows = table.Rows.Count;
}
dataGridView1.AutoGenerateColumns = false;
dataGridView1.Columns["FName"].DataPropertyName = table.Columns["FName"].ColumnName;
dataGridView1.Columns["LName"].DataPropertyName = table.Columns["LName"].ColumnName;
dataGridView1.Columns["Age"].DataPropertyName = table.Columns["Age"].ColumnName;
dataGridView1.DataSource = table;
//IF THE ORDER DOSEN'T MATTER
//DataTable table = new DataTable();
//string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"", "C:\\Users\\Excel\\Desktop\\Coding\\DOT.NET\\Samples C#\\Export DataGridView to SQL Server Table\\Import_List.xls");
//using (OleDbConnection dbConnection = new OleDbConnection(strConn))
//{
// using (OleDbDataAdapter dbAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", dbConnection)) //rename sheet if required!
// dbAdapter.Fill(table);
// dataGridView1.DataSource = table;
// int rows = table.Rows.Count;
//}
}
エクセル:再び
private void button3_Click(object sender, EventArgs e)
{
System.Data.OleDb.OleDbConnection ExcelConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\Excel\\Desktop\\Coding\\DOT.NET\\Samples C#\\Export DataGridView to SQL Server Table\\Import_List.xls;Extended Properties=Excel 8.0;");
ExcelConnection.Open();
string expr = "SELECT * FROM [Sheet1$]";
OleDbCommand objCmdSelect = new OleDbCommand(expr, ExcelConnection);
OleDbDataReader objDR = null;
SqlConnection SQLconn = new SqlConnection();
string ConnString = "Data Source=Excel-PC;Initial Catalog=Northwind.MDF;Trusted_Connection=True;";
SQLconn.ConnectionString = ConnString;
SQLconn.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(SQLconn))
{
bulkCopy.DestinationTableName = "tblTest";
try
{
objDR = objCmdSelect.ExecuteReader();
bulkCopy.WriteToServer(objDR);
ExcelConnection.Close();
//objDR.Close()
SQLconn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
...エクセルSQL Serverへ:
最後に
private void button4_Click(object sender, EventArgs e)
{
BindGrid();
}
protected void BindGrid()
{
string path = "C:\\Users\\Excel\\Desktop\\Coding\\DOT.NET\\Samples C#\\Export DataGridView to SQL Server Table\\Import_List.xls";
string jet = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0", path);
OleDbConnection conn = new OleDbConnection(jet);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
BulkUpload();
}
... DGV SQLには、サーバー:
private void button8_Click(object sender, EventArgs e)
{
//SqlConnection connection = new SqlConnection("Data Source=Excel-PC;Initial Catalog=Northwind.MDF;Trusted_Connection=True;");
DataTable dt = (DataTable)dataGridView1.DataSource;
string connection = "Data Source=Excel-PC;Initial Catalog=Northwind.MDF;Trusted_Connection=True;";
using (var conn = new SqlConnection(connection))
{
conn.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{
bulkCopy.ColumnMappings.Add(0, "Fname");
bulkCopy.ColumnMappings.Add(1, "Lname");
bulkCopy.ColumnMappings.Add(2, "Age");
bulkCopy.BatchSize = 10000;
bulkCopy.DestinationTableName = "Import_List";
bulkCopy.WriteToServer(dt.CreateDataReader());
}
}
}
上部にあなたの参照を設定することを忘れないでください!その記述は、「データベースをアタッチするために、この選択を使用しているため のVisual Studioの「新しいデータソースの追加」ウィザードでは、私が選ん保管オプションは、「Microsoft SQL Serverデータベースファイル」であった:私の問題を考え出し
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using Excel = Microsoft.Office.Interop.Excel;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Configuration;
using System.Data.SqlClient;
非常に徹底的な答えをありがとう!私はさまざまなオプションがあるデータベースプログラムから別のデータベースプログラムにデータをコピーすることに基づいていると思う。私の場合、使用したいテーブルはすでに正しく設定されており、Sql Serverに正しく存在しています...問題はVisual StudioプログラムをVSウィザードを使用してデータソースとして接続するだけです。私はあまりにもconnectionstringリンクを見て、私はそれを見ています。これは、ウィザードの "コードファースト"オプションを使用してエラーメッセージを克服する必要があることを意味しますか?新しいデータソースを追加しようとしてもエラーが表示されます。 –