if (strFileName == "") return false;
//得到Excel连接字符串
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + strFileName + ";" +
"Extended Properties=Excel 8.0;"; //将Excel数据读入DataSet
OleDbDataAdapter ExcelDa = new OleDbDataAdapter("SELECT * FROM [sheet1$]", strConn);
DataSet ExcelDs = new DataSet();
ExcelDa.Fill(ExcelDs, "studinfo"); //
string strSQL = string.Format("SELECT * FROM studinfo");
OleDbConnection conn = new OleDbConnection(GetConStr());
OleDbDataAdapter da = new OleDbDataAdapter(strSQL, conn);
OleDbCommandBuilder MyCB = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
conn.Open();
try
{
ds = ExcelDs.Copy();
//MessageBox.Show(ds.Tables[0].Rows[0].Table.Columns[1].ToString());
//Without the OleDbCommandBuilder this line would fail
da.Update(ds.Tables[0]);
conn.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
conn.Close();
}
我想这样处理
Excel->DataSet->Access,
这样ds里面的数据写不入Access里面,请高手指点一下!
//得到Excel连接字符串
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + strFileName + ";" +
"Extended Properties=Excel 8.0;"; //将Excel数据读入DataSet
OleDbDataAdapter ExcelDa = new OleDbDataAdapter("SELECT * FROM [sheet1$]", strConn);
DataSet ExcelDs = new DataSet();
ExcelDa.Fill(ExcelDs, "studinfo"); //
string strSQL = string.Format("SELECT * FROM studinfo");
OleDbConnection conn = new OleDbConnection(GetConStr());
OleDbDataAdapter da = new OleDbDataAdapter(strSQL, conn);
OleDbCommandBuilder MyCB = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
conn.Open();
try
{
ds = ExcelDs.Copy();
//MessageBox.Show(ds.Tables[0].Rows[0].Table.Columns[1].ToString());
//Without the OleDbCommandBuilder this line would fail
da.Update(ds.Tables[0]);
conn.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
conn.Close();
}
我想这样处理
Excel->DataSet->Access,
这样ds里面的数据写不入Access里面,请高手指点一下!
效率太慢了吧,
老老实实手工写个循环来Insert或者使用其他处理手段(比如import而不是insert)
是读出Excel表,整个表导入到DataSet。如果想要把数据更新到数据库,需要每一行每一列的把字符读出来。
1.引用Application对象
2.使用工作薄 ,Workbook对象代表Excel应用程序中当前打开的一个工作簿,包含在Workbooks集合中。读第一个工作表。
3.使用工作表 。Sheets集合表示工作簿中所有的工作表。可以通过Sheets集合来访问、激活、增加、更名和删除工作表。一个Worksheet对象代表一个工作表。
4.使用单元范围 Range对象代表工作表的某一单元格、某一行、某一列、某一选定区域或者某一三维区域。然后插入到数据库我是用insert方法。