我有一个insert插入数据的问题,高手进入

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:47:27
我有一个表 比如学生表
有学号,姓名,性别,成绩
我还有一个表,比如是 统计表,他是空的
里面需要包括学生表的相关信息

我写
sqlcommand comd=new sqlcommand();
comd.connection=con;
sqlcommand cmd=new sqlcommand();
cmd.connection=con;
cmd=commandtext="select * from 学生表";
sqldatareader reader=cmd.executereader();
while(reader.read())
{
comd.commandtext="insert into 统计表 values('reader[0].tostring()','reader[1].tostring()')";
comd.executenonquery();
}
reader.close();

错误提示说我要现关闭reader 才能执行insert语句。

但我想 我若关闭reader,再开启它,我就有要从学生表的第一条记录开始游历了,我想reader向下走一步,我就执行一次insert
这可以么??
我该怎么处理??请高手帮帮我
能不能用实例说明

SqlCommand cmd1 = new SqlCommand("select * from 学生表",con);
SqlCommand cmd2 = new SqlCommand();

SqlDataReader reader = cmd1.ExecuteReader();
while (reader.read())
{
cmd2.commandtext = "insert into 统计表 values('" + reader[0].tostring() + "','" + reader[1].tostring() + "')";
cmd2.Connection = con;
cmd2.ExecuteNonQuery();
}
reader.close();

这是因为 reader 是在线查询的,占用了数据库连接,所以在reader关闭之前不允许执行其他命令。

其实一句SQL就可以搞定

sqlcommand comd=new sqlcommand();
comd.connection=con;
sqlcommand cmd=new sqlcommand();
cmd.connection=con;
cmd.commandtext=" insert into 统计表 SELECT * from 学生表";
comd.executenonquery();

using (SqlConnection conn = new SqlConnection("数据连接字符串")) {
SqlCommand cmd = new SqlCommand(