日期:2014-05-17  浏览次数:20722 次

将datatable一次插入access,如何搞?
1 SqlBulkCopy 只有sql才可用的
2 本想将多个insert语句 拼在一起执行,无奈access不支持
2 只有用 sqldataadapter.update(dataset,tablename); 这个了
代码如下,执行后未插入数据, 已知 dt中有数据的



                OleDbDataAdapter adapt = new OleDbDataAdapter("select id,ItemGuid,StartTime from " + tableName, conn);
                adapt.Fill(dt);
                var cmd = new OleDbCommand("insert into " + tableName + "(ID,ItemGuid,StartTime) values(@id,@ItemGuid,@StartTime)", conn);
                cmd.Parameters.Add("@Id", OleDbType.Integer, 4, "Id");
                cmd.Parameters.Add("@ItemGuid", OleDbType.VarChar, 40, "itemGuid");
                cmd.Parameters.Add("@StartTime", OleDbType.VarChar, 20, "StartTime");
                adapt.InsertCommand = cmd;


                if (dt != null)
                {
                    try
                    {
                        adapt.Update(dt);
                    }
                    catch (Exception e)
                    {
                        return e.Message;
                    }
                }


------解决方案--------------------
本帖最后由 net_lover 于 2012-05-21 15:54:17 编辑
多字段,我给你的例子中都有了啊,你都不看也没办法了。测试代码

System.Data.DataTable dataTable1 = new System.Data.DataTable("TestTableXXXXXXXXXXXXXXXXXX");
System.Data.DataRow dr;
dataTable1.Columns.Add(new System.Data.DataC