日期:2014-05-17  浏览次数:21246 次

读取数据循环中执行sql可以么?
C# code

......
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
   .......这里怎么写?
}
........



------解决方案--------------------
C# code
......
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();

------解决方案--------------------
本来是简单直接的操作,凭什么“建议不要在循环里面写循环执行数据库sql”?
------解决方案--------------------
探讨
conn = new SqlConnection(strconn);
conn.Open();
SqlCommand cmd = new SqlCommand(); //创建sqlcommand对象
cmd.Connection = conn; //指定使用conn链接数据库
string sql1="....";
cmd.CommandText = sql1;
cmd.Comma……