dataset导入数据库我现在从excel中抓取数据并绑定到dataset中,请问我现在怎么把dataset中的数据批量的插入
dataset导入数据库 我现在从excel中抓取数据并绑定到dataset中,请问我现在怎么把dataset中的数据批量的插入到数据库中的表中呢? 还请各位赐教,谢了先... 请看好了,是插入新表[解决办法] 遍历ds的没一数据行, 再一行一行的insert到表中 for each(DataRow dr in ds) { string sql = “insert into table1 values (” + “‘” + dr[“字段名1”]+”’,‘“ + dr[“字段名2”]+................. InsertIntoTable(sql) } private void InsertIntoTable(string sql) { '执行插入数据库表的函数。 }[解决办法] 学习了。[解决办法] 用sql语句可以实现,create一个表,再按楼上的方法一行行插进去就可以了[解决办法]
探讨 晕,我要的是整个dataset提交,不是一个一个的insert,谢谢[解决办法] 直接到入就行了啊
sql server 好像导入数据要用第三方工具
oracle 可以直接导的吧
[解决办法] 实现目的:往oracle数据库中,插入excel文件中的数据
实现步骤:
1、打开MicroSoft Excel 2000
2、文件(F)→新建(N)→工作簿→
3、输入数据后,存盘为test.xls,
4、文件(F)→另存为(A)→
保存类型为:制表符分隔,起名为text.txt,保存到C:\
5、须先创建表结构:
连入SQL*Plus,以system/manager用户登录,
SQL> conn system/manager
创建表结构 SQL> create table test
(
id number,--序号
usernamevarchar2(10), --用户名
passwordvarchar2(10), --密码
sj varchar2(20) --建立日期
);
6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:
控制文件:input.ctl,内容如下:
load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table test--3、向表test中追加记录
fields terminated by X'09'--4、字段终止于X'09',是一个制表符(TAB)
(id,username,password,sj) -----定义列对应顺序
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
7、在DOS窗口下使用SQL*Loader命令实现数据的输入
C:\>sqlldr userid=system/manager control=input.ctl
默认日志文件名为:input.log
默认坏记录文件为:input.bad
如果是远程对数据库进行导入操作,则输入字符串应改为:
C:\>sqlldr userid=system/manager@serviceName_192.168.1.248 control=input.ctl
8、连接到SQL*Plus中,查看是否成功输入,可比较input.log与原test.xls文件,查看数据是否全部导入,是否导入成功.
[解决办法] 没做过这个,但想到一个思路,楼主可以试试是否可行,效率如何
1.先执行建表语句
2.使用适配器得到一个该表的目标dataset
3.将你的源dataset合并到那个目标dataset里去
4.目标dataset.AcceptChange()
[解决办法] 首先 你需要在数据库当中创建一个相同结构的数据表,然后再程序当中,获得该程序表的dataset和dataadapter
然后 给dataadapter创建更新语句,然后使用dataset.marge方法合并两个dataset然后使用dataaadpter的update方法应该就可以了
[解决办法] 那只是外表,里面真正运行的还一条一条进去插的,你自己想想就知道了,人家插入数据库数据时,还不是一条的进去。
[解决办法] 批量处理 也是 一条一条 来插入的
[解决办法] up
[解决办法] 靠
直接调用 sql server bcp工具
直接把excel数据批量导入到数据库对应的表中了
[解决办法] sql有自带的数据导入功能。那个就支持Excel。[解决办法] UpdateDataset(datasset,new string[] {this.H_TableName ,this.D_TableName},DataCon.conString); public static void UpdateDataset(SqlCommand insertCommand, SqlCommand deleteCommand, SqlCommand updateCommand, DataSet dataSet, string tableName) { if( insertCommand == null ) throw new ArgumentNullException( "insertCommand" ); if( deleteCommand == null ) throw new ArgumentNullException( "deleteCommand" ); if( updateCommand == null ) throw new ArgumentNullException( "updateCommand" ); if( tableName == null || tableName.Length == 0 ) throw new ArgumentNullException( "tableName" ); // Create a SqlDataAdapter, and dispose of it after we are done using (SqlDataAdapter dataAdapter = new SqlDataAdapter()) { // Set the data adapter commands dataAdapter.UpdateCommand = updateCommand; dataAdapter.InsertCommand = insertCommand; dataAdapter.DeleteCommand = deleteCommand; // Update the dataset changes in the data source dataAdapter.Update (dataSet, tableName); // Commit all the changes made to the DataSet dataSet.AcceptChanges(); } }[解决办法]
探讨 引用: 那只是外表,里面真正运行的还一条一条进去插的,你自己想想就知道了,人家插入数据库数据时,还不是一条的进去。 你说的是必然的,但是人家是底层插入,效率肯定比你一条一条插效率高多了,如果你往数据库插5万条数据,每条数据有 50多个字段,其中有10多个是大文本字段,并且字数在2000左右,甚至更高,你再试试[解决办法] 探讨 没做过这个,但想到一个思路,楼主可以试试是否可行,效率如何 1.先执行建表语句 2.使用适配器得到一个该表的目标dataset 3.将你的源dataset合并到那个目标dataset里去 4.目标dataset.AcceptChange()[解决办法] 老大们,费那么多事干嘛,直接使用不就可以了,不论怎样的操作方式,在大数据量处理的时候,数据的底层操作不是你我可以控制的,我们所能操作的只是用那个更简便而以