......
conn = new SqlConnection(strconn); 
conn.Open(); 
SqlCommand cmd = new SqlCommand();     //创建sqlcommand对象
cmd.Connection = conn;                 //指定使用conn链接数据库
string sql1="....";
cmd.CommandText = sql1;
cmd.CommandType = CommandType.Text;
SqlDataReader sdr = cmd.ExecuteReader();while (sdr.read())//本来就是数据库读取循环
{
   string a = sdr.getstring(0);
   string b = sdr.getstring(1);
   sql2="insert into table1 (a,b) values ('"+a+"','"+b+"')";
   执行上面的sql2
   .......这里怎么写?
}
........

解决方案 »

  1.   

    conn = new SqlConnection(strconn); 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand();     //创建sqlcommand对象
    cmd.Connection = conn;                 //指定使用conn链接数据库
    string sql1="....";
    cmd.CommandText = sql1;
    cmd.CommandType = CommandType.Text;
    SqlDataReader sdr = cmd.ExecuteReader();SqlCommand cmdInsert = new SqlCommand();     //创建sqlcommand对象
    cmdInsert.Connection = conn;                 //指定使用conn链接数据库
    cmdInsert.CommandType = CommandType.Text;while (sdr.read())//本来就是数据库读取循环
    {
       string a = sdr.getstring(0);
       string b = sdr.getstring(1);
       sql2="insert into table1 (a,b) values ('"+a+"','"+b+"')";
       cmdInsert.CommandType = sql2;
     cmdInsert.ExecuteNonQuery();
    }
      

  2.   

    ......
    cmd.CommandType = CommandType.Text;
    SqlDataReader sdr = cmd.ExecuteReader();SqlConnection cn = new SqlConnection(strconn);
    SqlCommand cmd2=new SqlCommand(null,cn);
    cn.Open();
    while (sdr.read())//本来就是数据库读取循环
    {
       string a = sdr.getstring(0);
       string b = sdr.getstring(1);
       cmd2.CommandText="insert into table1 (a,b) values ('"+a+"','"+b+"')";
       cmd2.ExecuteNonQuery();
    }
    cn.Close();
      

  3.   

    你要是想你程序很慢 你就将就用...
    建议不要在循环里面写循环执行数据库sql
      

  4.   

    本来是简单直接的操作,凭什么“建议不要在循环里面写循环执行数据库sql”?
      

  5.   

    conn = new SqlConnection(strconn); 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand();     //创建sqlcommand对象
    cmd.Connection = conn;                 //指定使用conn链接数据库
    string sql1="....";
    cmd.CommandText = sql1;
    cmd.CommandType = CommandType.Text;
    SqlDataReader sdr = cmd.ExecuteReader();while (sdr.read())//本来就是数据库读取循环
    {
       string a = sdr.getstring(0);
       string b = sdr.getstring(1);
       cmd.CommandText="insert into table1 (a,b) values ('"+a+"','"+b+"')";
       cmd.ExecuteNonQuery();}
      

  6.   


    SqlDataReader 就垮掉了。
      

  7.   

    建议在内存中对dataset表中数据进行修改,全部修改完再用 sqlDataAdapter的Update一次更新数据库。减少数据库负担
      

  8.   

    问题已经解决,重新开一条conn.open和cmd线程就可以了。