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

朋友们,请帮我看看这个二重循环FOR语句!
以下我是闷着头乱写的,请问这代码哪里需要改动.
             for (int j= 0; j< gridview.Rows.Count; j++)
              {    
              for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     double kc_c = Convert.ToDouble(dt.Rows[i][4].ToString());
                     string sqlstr = "update Storage_kc set Quantity='" + (Convert.ToDouble(TextBox9.Text.Trim().ToString()) + kc_c) + "'where GoodsName='" + gridview.Rows[j].cell[2].ToString()+ "'and UnitPrice='" +  gridview.Rows[j].cell[4].ToString()+ "'and Provider='" +  gridview.Rows[j].cell[5].ToString(+ "'";/
                     SqlCommand sqlcom = new SqlCommand(sqlstr, connn);
                     connn.Open();
                     sqlcom.ExecuteNonQuery();
                     connn.Close();
                }
}?

------解决方案--------------------
其他的差不多,把
 SqlCommand sqlcom = new SqlCommand(sqlstr, connn);
                     connn.Open();
                     sqlcom.ExecuteNonQuery();
                     connn.Close();
提到循环的外面
一直性执行就行了,事务也好处理性能也高
循环里把各个sql语句用;拼在一起
即sql=sql + 你上面的sql + ";"
------解决方案--------------------
connn没必要频繁开关
------解决方案--------------------
是想做批量更新吗