/// <summary> /// 更新内存中的数据到数据库 /// </summary> /// <param name="tableName"></param> public void UpdateDataSetToDB(string tableName) { HttpContext.Current.Application.Lock(); try { DataSet myDS=(DataSet)HttpContext.Current.Application["aDataSet"]; SqlDataAdapter myDA= (SqlDataAdapter)HttpContext.Current.Application["aDA"]; SqlCommandBuilder sbTemp=new SqlCommandBuilder(myDA); myDA.Update(myDS,tableName); } catch(Exception ex) { WebLog.WriteLog("更新内存中的数据到数据库出现了错误:" + ex.Message); } HttpContext.Current.Application.UnLock(); }
我写的一个更新一个datable的方法,给你参考一下
public string ExecuteInsert(DataTable dt) { string sql=""; string fieldStr=""; string valueStr=""; int i=0; string result; try { for(i=0;i<dt.Columns.Count;i++) { fieldStr += dt.Columns[i].ColumnName + ","; }
fieldStr = fieldStr.Substring(0,fieldStr.Length-1); for(i=0;i<dt.Rows.Count;i++) { sql = "insert into {0}({1}) values({2})"; valueStr =""; for(int j=0;j<dt.Columns.Count;j++) { switch(System.Type.GetTypeCode(dt.Rows[i][j].GetType())) { case System.TypeCode.Byte: case System.TypeCode.Char: case System.TypeCode.Decimal: case System.TypeCode.Double: case System.TypeCode.Int16: case System.TypeCode.Int32: case System.TypeCode.Int64: case System.TypeCode.SByte: case System.TypeCode.Single: case System.TypeCode.UInt16: case System.TypeCode.UInt32: case System.TypeCode.UInt64: valueStr += dt.Rows[i][j].ToString() +","; break; case System.TypeCode.DateTime: case System.TypeCode.String: valueStr += "'" + dt.Rows[i][j].ToString() +"',"; break; case System.TypeCode.Boolean: { if ((bool)dt.Rows[i][j]==true) valueStr += "1,"; else valueStr += "0,";
break; } default: valueStr +=" null,"; break; } } valueStr = valueStr.Substring(0,valueStr.Length-1); sql = string.Format(sql,dt.TableName,fieldStr,valueStr); result = this.ExecuteNonQuery(sql); } return "ok"; }
catch(Exception ex) { return ex.Message;
} }
|