如何在数据库中批量插入数据

如何在数据库中批量插入数据,第1张

可以使用oracle sql loader批量导入数据

 生成测试数据的EXCEL文件,把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件设置为用逗号分隔。

示例:

LOAD DATA

INFILE ‘d:\car.csv’

APPEND INTO TABLE t_car_temp

FIELDS TERMINATED BY ","

(phoneno,vip_car)

保存为input.ctl

最后在命令行下输入:

C:\>sqlldr userid=system/manager

control=input.ctl(在unix环境下亦同)

默认日志文件名为:input.log

默认坏记录文件为:input.bad

//将dgvStudent数据 *** 作更新到数据库

private Boolean dbUpdate()

{

string strSql = "select ID as 学号,name as 姓名, class as 班级 from tbl_Student"

//新建一个用于将dgvStudent数据 *** 作更新到数据库的内存

DataTable dtUpdate= new DataTable()

//新建一个用于更新dgvStudent数据 *** 作的内存表

//利用da初始化dtUpdate的表结构(和数据)

SqlDataAdapter da = new SqlDataAdapter(strSql, sqlCon)

da.Fill(dtUpdate)

//初始化的数据需清除,以存放更新后的dgvStudent数据

dtUpdate.Rows.Clear()

//再建一个内存表,用于将更新后的dgvStudent数据逐条读取出来存入更新内存表中

DataTable dtShow = new DataTable()

//逐条读取出来存入更新内存表中

dtShow = (DataTable) dgvStudent.DataSource

for (int i = 0i <dtShow.Rows.Counti++)

{

dtUpdate.ImportRow(dtShow.Rows[i])

}

try

{

this.sqlCon.Open()

//使对DataSet所做的更改与关联的SQL Server数据库相协调

SqlCommandBuilder sqlCbld

sqlCbld = new SqlCommandBuilder(da)

//通过该da将更新后的dgvStudent数据(即已复制的dtUpdate)更新到数据库

da.Update(dtUpdate)

sqlCon.Close()

}

catch(Exception ex)

{

MessageBox.Show("数据库 *** 作失败:" + ex.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

return false

}

dtUpdate.AcceptChanges()

return true

}

难道你不知道“数据库事物”是什么吗?数据库事务就是用于批量对数据库进行插入、修改、删除数据用的。比如,如果一条条向数据库插入数据,如果数据有成千上万条,那么这种插入效率是不能忍受的,会花很长时间,数据库事务就是用来解决这种问题。如果你不明白什么是数据库事务,我建议你找找相关资料来看一下。

用事务,比如:

OleDbConnection conn=....

OleDbTransaction trans=null

try

{

trans = conn.BeginTransaction()

OleDbCommand cmd = conn.CreateCommand()

cmd.Transaction = trans

//执行插入数据的SQL *** 作

trans.Commit()

cmd.Dispose()

trans.Dispose()

}

catch(Exception e)

{

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9782374.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存