コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }