想实现excel通过access导入到数据库里,但是运行时会报出这个错误,不知道哪里写错了,求各位大大帮助!
附上源码:
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=测试.mdb"); //Jet OLEDB:Database Password=
OleDbCommand cmd = conn.CreateCommand();
conn.Open();
OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
string fileName = fd.FileName;
bind(fileName);
}
conn.Close();
}
private void bind(string fileName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + fileName + ";" +
"Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'";
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [sheet1$]", strConn);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
dt = ds.Tables[0];
this.dataGridView1.DataSource = dt;
}
catch (Exception err)
{
MessageBox.Show("操作失败!" + err.ToString());
}
}
private void button2_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=测试.mdb");
OleDbCommand cmd = conn.CreateCommand();
conn.Open();
if (dataGridView1.Rows.Count > 0)
{
DataRow dr = null;
for (int i = 0; i < dt.Rows.Count; i++)
{
dr = dt.Rows[i];
insertToSql(dr,conn);
}
MessageBox.Show("导入成功!");
}
else
{
MessageBox.Show("没有数据!");
}
conn.Close();
}
private void insertToSql(DataRow dr, OleDbConnection conn)
{
string 型号 = dr["型号"].ToString();
string 名称 = dr["名称"].ToString();
string 功能 = dr["功能"].ToString();
string 管脚数 = dr["管脚数"].ToString();
string 管脚定义 = dr["管脚定义"].ToString();
string 芯片介绍 = dr["芯片介绍"].ToString();
string sql = "insert into sheet1 values('" + 型号 + "','" + 名称 + "','" + 功能 + "','" + 管脚数 + "','" + 管脚定义 + "','" + 芯片介绍 + "')";
OleDbCommand abc = new OleDbCommand(sql,conn);
abc.ExecuteNonQuery();
}