using (SqlConnection conn = new SqlConnection()) { SqlCommand comm= new SqlCommand(); conn.ConnectionString ="数据库连接串"; comm.CommandType =CommandType .Text ; comm.Connection = conn; conn.Open(); foreach (DataRow item in hr) { string sql= 取得字段并拼接为sql语句; comm.CommandText =sql; comm.ExecuteNoQuery(); } comm..Dispose(); //只是立即释放又cmd对象所占用的一切非托管资源,当然IDisposable()接口也正是为了对释放非托管资源提供确定的机制,但是cmd本身是对象,是托管资源,它的释放还是要依赖GC来管理,然而这个时间本身就是不确定的,cmd.Dispose(); 对此类非托管的对象,Dispose方法只是通知GC可以回收Command的对象cmd了,至于什么时候回收,时间是不确定的,即不是人为能掌控的,也不是调了Dispose方法就能立即被销毁的 conn.Close (); }