我的Excel文件包含以下数据:
Name ID Contact
---------------------------
John 3 01542954
Smith 6 7450142
Dan 8 5486295
这是我在SQL Server中的表(tblinfo
),有两列(Customer
和Contact
)。
我想从
插入数据我试着搜索这么多。但他们教导的几乎所有关于Winforms NOT WPF的内容
我正在使用VS 2015,SQL Server 2014,Office 2010
答案 0 :(得分:0)
使用以下方法从Excel工作表生成DataTable
。
public static DataTable ConvertExcelToDataTable(string FileName)
{
DataTable dtResult = null;
int totalSheet = 0; //No of sheets on excel file
using(OleDbConnection objConn = new OleDbConnection(@
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';"))
{
objConn.Open();
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter oleda = new OleDbDataAdapter();
DataSet ds = new DataSet();
DataTable dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = string.Empty;
if (dt != null)
{
var tempDataTable = (from dataRow in dt.AsEnumerable()
where!dataRow["TABLE_NAME"].ToString().Contains("FilterDatabase")
select dataRow).CopyToDataTable();
dt = tempDataTable;
totalSheet = dt.Rows.Count;
sheetName = dt.Rows[0]["TABLE_NAME"].ToString();
}
cmd.Connection = objConn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM [" + sheetName + "]";
oleda = new OleDbDataAdapter(cmd);
oleda.Fill(ds, "excelData");
dtResult = ds.Tables["excelData"];
objConn.Close();
return dtResult; //Returning Dattable
}
}
使用此DataTable
为SQL数据库准备查询。