求一个将excel导入到access数据库的代码!!!谢谢了
刚才已经请教到先导入到dataset中,并通过gridview显示出来,现在想写到access里面,请问怎么写代码。已经读到dataset中的代码是这样的:
protected DataSet DSBind(string filePath)
{
String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + "Extended Properties=Excel 8.0;";
//Create connection object by using the preceding connection string.
OleDbConnection objConn = new OleDbConnection(ConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objds = new DataSet();
objAdapter1.Fill(objds, "ExcelDataSet");
return objds;
objConn.Close();
}
protected void btnInputData_Click(object sender, EventArgs e)
{
gvData.DataSource = DSBind(fuFile.PostedFile.FileName);
gvData.DataBind();
请问怎么导入到数据库?(还有如果excel有几个sheet,请问怎么解决) --------------------编程问答-------------------- access 讀到 dataset里,
軟后oledbDataApdater。update --------------------编程问答-------------------- OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|\\studentinfo.mdb");
conn.Open();
for (int i = 0; i <= myDataSet.Tables["Excel_Sheet1"].Rows.Count - 1; i++)
{
//...
string intostr = "insert into " + tabel_name + " ([enrollment_date],[name],[sex],[study_mark],[Private_mark],[class])values('" + myDataSet.Tables["Excel_Sheet1"].Rows[i][0].ToString() + "','"
+ myDataSet.Tables["Excel_Sheet1"].Rows[i][1].ToString() + "','" + myDataSet.Tables["Excel_Sheet1"].Rows[i][2].ToString() + "','"
+ myDataSet.Tables["Excel_Sheet1"].Rows[i][3].ToString() + "','" + myDataSet.Tables["Excel_Sheet1"].Rows[i][4].ToString() + "','" + myDataSet.Tables["Excel_Sheet1"].Rows[i][5].ToString() + "')";//这些东西改为你自己的
OleDbDataAdapter da = new OleDbDataAdapter(intostr, conn);
OleDbCommandBuilder cmd = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, tabel_name);
} --------------------编程问答--------------------
这个代码看的不是很明白,能不能贴个完整的 --------------------编程问答-------------------- 顶一下~~~~~~ --------------------编程问答--------------------
这个跟你的那个结合起来用就可以了呀
已经完整了的 --------------------编程问答--------------------
请问如何整合啊,那个if代码是不是要放入click事件里,还有myDataSet.Tables["myDataSet.Tables["Excel_Sheet1"]"]里,Excel_Sheet1要用excel的实际表名?
我把它的if语句改成自己的,6个字段名我都建成他那6个:
for (int i = 0; i <=objds.Tables["Excel_Sheet1"].Rows.Count - 1; i++)
{
//...
string intostr = "insert into tb_excelData ([enrollment_date],[name],[sex],[study_mark],[Private_mark],[class])values('" + objds.Tables["Excel_Sheet1"].Rows[i][0].ToString() + "','"
+ objds.Tables["Excel_Sheet1"].Rows[i][1].ToString() + "','" + objds.Tables["Excel_Sheet1"].Rows[i][2].ToString() + "','"
+ objds.Tables["Excel_Sheet1"].Rows[i][3].ToString() + "','" + objds.Tables["Excel_Sheet1"].Rows[i][4].ToString() + "','" + objds.Tables["Excel_Sheet1"].Rows[i][5].ToString() + "')";
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|\\info.mdb");
OleDbDataAdapter da = new OleDbDataAdapter(intostr, conn);
OleDbCommandBuilder cmd = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "tb_excelData");
请问谁能够贴个完成的代码上来啊,我是初学者,急用这个功能啊,在线等 --------------------编程问答-------------------- private DataTable XlsToDataTable(String strpath)
{
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strpath + ";" +
"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
DataTable dt = new DataTable();
myCommand.Fill(dt);
return dt;
}
或
private void button1_Click(object sender, EventArgs e)
{
string str="";
oleDbConnExcel = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=" + Application.StartupPath.Trim() +"\\a.xls");
oleDbConnExcel.Open();
strGetDataFromExcel = "SELECT * FROM [Sheet1$]";
oleDbCmdExcel = new OleDbCommand(strGetDataFromExcel, oleDbConnExcel);
oleDbDataReaderExcel = oleDbCmdExcel.ExecuteReader();
if (oleDbDataReaderExcel.HasRows == true)
{
oleDbConnAccess.Open();
for (; ; )
{
if (oleDbDataReaderExcel.Read())
{
str= "";
oleDbCmdAccess = new OleDbCommand(str, oleDbConnAccess);
oleDbCmdAccess.ExecuteNonQuery();
oleDbCmdAccess.Dispose();
}
else
break;
}
oleDbConnAccess.Close();
}
oleDbDataReaderExcel.Close();
oleDbCmdExcel.Dispose();
oleDbConnExcel.Close();
}
或直接代码excel模板,遍历数据集,导入excel --------------------编程问答-------------------- 就是循环“导入到dataset”的数据,插入...
--------------------编程问答-------------------- C# Excel 导入到 Access数据库表(转载winForm版)
/// <summary>
/// 获取Excel文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Excel文件(*.xls)|*.xls";
if (dlg.ShowDialog() == DialogResult.OK)
{
string filePath = dlg.FileName;
this.textBox1.Text = filePath;
}
}
/// <summary>
/// 导入Excel文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length == 0)
{
MessageBox.Show("请选择导入数据的Execl文件");
}
else
{
try
{
OleDbConnectionStringBuilder connectStringBuilder = new OleDbConnectionStringBuilder();
connectStringBuilder.DataSource = this.textBox1.Text.Trim();
connectStringBuilder.Provider = "Microsoft.Jet.OLEDB.4.0";
connectStringBuilder.Add("Extended Properties", "Excel 8.0");
using (OleDbConnection cn = new OleDbConnection(connectStringBuilder.ConnectionString))
{
DataSet ds = new DataSet();
string sql = "Select * from [Sheet1$]";
OleDbCommand cmdLiming = new OleDbCommand(sql, cn);
cn.Open();
using (OleDbDataReader drLiming = cmdLiming.ExecuteReader())
{
ds.Load(drLiming, LoadOption.OverwriteChanges, new string[] { "Sheet1" });
DataTable dt = ds.Tables["Sheet1"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
//写入数据库数据
string MySql = "insert into ClientInfo values('"+dt.Rows[i]["姓名"].ToString()+"','"+dt.Rows[i]["姓名"].ToString()
+"','0','"+dt.Rows[i]["备注"].ToString()+"','0','"+i.ToString()+"')";
new DataAccess().SQLExecute(MySql);
}
MessageBox.Show("数据导入成功!");
}
else
{
MessageBox.Show("请检查你的Excel中是否存在数据");
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
/// <summary>
/// 数据操作通用类
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public bool SQLExecute(string sql)
{
try
{
OleDbConnection conn = new OleDbConnection(CONNECT_STRING);
conn.Open();
OleDbCommand comm = new OleDbCommand ();
comm.Connection = conn;
comm.CommandText = sql;
comm.ExecuteNonQuery();
comm.Connection.Close();
conn.Close();
return true;
}
catch
{
return false;
}
}
补充:.NET技术 , ASP.NET