黑马程序员技术交流社区

标题: 请教大家一个简单的问题 [打印本页]

作者: 周敏_.net    时间: 2011-11-20 14:04
标题: 请教大家一个简单的问题
本帖最后由 周敏_.net 于 2011-11-21 20:27 编辑

在数据库里面添加一条测试数据用Insert就可以了,但是如果需要插入很多条测试数据,有没有简单的方法不用一条条的写
作者: 付炯    时间: 2011-11-20 14:37
没太看明白你的意思 可以预先把数据存在数组里 然后用循环语句啊
作者: 刘景发    时间: 2011-11-20 15:02
可以开启事务再结合循环语句实现,这样效率比较高。
OleDbConnection con = new OleDbConnection();//数据库链接
            con.ConnectionString = "";//链接字符串
            OleDbCommand com = new OleDbCommand();//命令
            OleDbTransaction trans = con.BeginTransaction();//开始事务
            com.Transaction = trans;//设置命令的事务
            con.Open();//打开链接
            string sql;
            for (int i = 0; i < 5; i++)
            {
                sql = "insert into table () values()";
                com.CommandText = sql;
                com.ExecuteNonQuery();
            }
            trans.Commit();//提交事务
            con.Close();//关闭链接

作者: 周敏_.net    时间: 2011-11-20 15:10
刘景发 发表于 2011-11-20 15:02
可以开启事务再结合循环语句实现,这样效率比较高。
OleDbConnection con = new OleDbConnection();//数据 ...

我是说就用SQL语句写。
作者: 朱勋    时间: 2011-11-20 15:20
放到文本文件里面然后倒入到数据库中
作者: 张振鹏    时间: 2011-11-20 15:24
Insert into 表名(l列名1,列名2,…) select语句  这种格式插入多行数据
例如:
insert into Name (Name,Age,Sex)
select Sname,Sage,Ssex from Student
使用这种形式插入多行数据是要注意两点:
1、要插入的数据表必须存在。
2、要插入数据的表结构必须和select语句的结果集兼容,也就是说,二者的列的数量和顺序必须相同,列的数据类型必须兼容
作者: 刘景发    时间: 2011-11-20 15:35
周敏_.net 发表于 2011-11-20 15:10
我是说就用SQL语句写。

不好意思,没理解你的意思……其实前面那个开启事务加循环的效率是很高的,我用过。这里还有另外一种方法:)
INSERT INTO  Student(ID,NAME)
VALUES(3,'张三'),(5,'李四'),(9,'王五')
优点:代码执行效率高,不用多个INSERT INTO语句,这样也可以避免重复复制、粘贴时出现缺失分号而出现错误的情况……
作者: 杨楠    时间: 2011-11-20 18:21
张振鹏同学正解{:soso_e106:}
作者: 王绚文    时间: 2011-11-21 09:23
在程序里写个for循环 不管你怎么操作 他在数据库中始终是要执行那么多次insert的·只是看你在程序里的代码量
作者: 乔克    时间: 2011-11-21 11:24
在程序中可以写简单的循环语句  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2