internal static int UpdateResTableCol(string tableName, string reskey, string culture, string contentCol, string content) { int result = 0; using (InterfaceDataBase db = DataBaseManager.GetDataBase()) { DbTransaction dbTrans = db.GetTransction(); try { string strSqlUpdate = string.Format("update {0} set {1} =@CONTENT where ACLID = @ACLID and culture =@CULTURE ", tableName, contentCol); string strSqlInsert = string.Format("insert into {0}(ACLID,CULTURE,{1}) values( @ACLID,@CULTURE,@CONTENT) ", tableName, contentCol); Dictionary <string, object> parameter = new Dictionary <string, object>(); parameter.Clear(); parameter.Add("ACLID", reskey); parameter.Add("CONTENT", content); parameter.Add("CULTURE", culture); //如果修改不成功,就当做插入的 int temp = db.RunSqlNoneQuery(strSqlUpdate, parameter, dbTrans); if (temp == 0) { temp = db.RunSqlNoneQuery(strSqlInsert, parameter, dbTrans); } result = temp; dbTrans.Commit();//提交 } catch (Exception ex) { dbTrans.Rollback();//回滚 throw ex; } } return(result); }
internal static int UpdateResTableCol(string tableName, string culture, string contentCol, string content, string[] resKeyCols, string[] resKeyValues) { int result = 0; if (resKeyCols.Length != resKeyValues.Length) { throw new ApplicationException("主键列数量,与主键值数量必须一致"); } using (InterfaceDataBase db = DataBaseManager.GetDataBase()) { DbTransaction dbTrans = db.GetTransction(); try { string strSqlUpdate = string.Format("update {0} set {1} =@CONTENT where culture =@CULTURE ", tableName, contentCol); string strSqlInsert = ""; string strSqlInsPre = string.Format("insert into {0}({1},CULTURE ", tableName, contentCol); string strSqlInsLast = "values( @CONTENT,@CULTURE "; Dictionary <string, object> parameter = new Dictionary <string, object>(); parameter.Clear(); parameter.Add("CONTENT", content); parameter.Add("CULTURE", culture); string keyCol, keyValue; for (int i = 0; i < resKeyCols.Length; i++) { keyCol = resKeyCols[i].ToUpper(); keyValue = resKeyValues[i]; if (keyCol == "CULTURE") { continue; } strSqlUpdate += string.Format(" and {0} = @{1} ", keyCol, keyCol); strSqlInsPre += string.Format(" ,{0} ", keyCol); strSqlInsLast += string.Format(" ,@{0} ", keyCol); parameter.Add(keyCol, keyValue); } strSqlInsert = string.Format("{0}) {1} )", strSqlInsPre, strSqlInsLast); System.Console.WriteLine("insert:" + strSqlInsert); System.Console.WriteLine("update:" + strSqlUpdate); //如果修改不成功,就当做插入的 int temp = db.RunSqlNoneQuery(strSqlUpdate, parameter, dbTrans); if (temp == 0) { temp = db.RunSqlNoneQuery(strSqlInsert, parameter, dbTrans); } result = temp; dbTrans.Commit();//提交 } catch (Exception ex) { dbTrans.Rollback();//回滚 throw ex; } } return(result); }