Пример #1
0
        public static void UpdateCustomFields(DataRow rowForm, Guid gID, string sCUSTOM_MODULE, DataTable dtCustomFields)
        {
            if (dtCustomFields.Rows.Count > 0)
            {
                InlineQueryDBManager oQuery = new InlineQueryDBManager();
                oQuery.CommandText = "update " + sCUSTOM_MODULE + "_CSTM" + ControlChars.CrLf;
                int nFieldIndex = 0;
                foreach (DataRow row in dtCustomFields.Rows)
                {

                    string sNAME = TypeConvert.ToString(row["NAME"]).ToUpper();
                    string sCsType = TypeConvert.ToString(row["CsType"]);

                    int nMAX_SIZE = TypeConvert.ToInteger(row["MAX_SIZE"]);
                    if (rowForm.Table.Columns.Contains(sNAME))
                    {
                        if (nFieldIndex == 0)
                            oQuery.CommandText += "   set ";
                        else
                            oQuery.CommandText += "     , ";

                        oQuery.CommandText += sNAME + " = @" + sNAME + ControlChars.CrLf;

                        SqlParameter oParam = new SqlParameter();

                        switch (sCsType)
                        {
                            case "Guid":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.UniqueIdentifier);
                                oParam.Value = TypeConvert.ToGuid(rowForm[sNAME]);
                                break;
                            case "short":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Int);
                                oParam.Value = TypeConvert.ToInteger(rowForm[sNAME]);
                                break;
                            case "Int32":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Int);
                                oParam.Value = TypeConvert.ToInteger(rowForm[sNAME]);
                                break;
                            case "Int64":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Int);
                                oParam.Value = TypeConvert.ToInteger(rowForm[sNAME]);
                                break;
                            case "float":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Float);
                                oParam.Value = TypeConvert.ToFloat(rowForm[sNAME]);
                                break;
                            case "decimal":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Decimal);
                                oParam.Value = TypeConvert.ToDecimal(rowForm[sNAME]);
                                break;
                            case "bool":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Bit);
                                oParam.Value = TypeConvert.ToBoolean(rowForm[sNAME]);
                                break;
                            case "DateTime":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.DateTime);
                                oParam.Value = TypeConvert.ToDateTime(rowForm[sNAME]);
                                break;
                            default:
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.NVarChar, nMAX_SIZE);
                                oParam.Value = TypeConvert.ToString(rowForm[sNAME]);
                                break;
                        }
                        nFieldIndex++;
                    }
                }
                if (nFieldIndex > 0)
                {
                    oQuery.CommandText += " where ID_C = @ID_C" + ControlChars.CrLf;
                    SqlParameter oParamID = new SqlParameter("@ID_C", SqlDbType.UniqueIdentifier);
                    oParamID.Value = gID;
                    oQuery.CommandType = CommandType.Text;
                    oQuery.ExecuteNonQuery(oQuery.CommandText);
                }
            }
        }
Пример #2
0
        public static void UpdateCustomFields(CRMControl ctlPARENT, Guid gID, string sCUSTOM_MODULE, DataTable dtCustomFields)
        {
            if (dtCustomFields.Rows.Count > 0)
            {
                InlineQueryDBManager oQuery = new InlineQueryDBManager();
                oQuery.CommandText = "update " + sCUSTOM_MODULE + "_CSTM" + ControlChars.CrLf;
                int nFieldIndex = 0;
                foreach (DataRow row in dtCustomFields.Rows)
                {
                    string sNAME = TypeConvert.ToString(row["NAME"]).ToUpper();
                    string sCsType = TypeConvert.ToString(row["CsType"]);

                    int nMAX_SIZE = TypeConvert.ToInteger(row["MAX_SIZE"]);
                    DynamicControl ctlCustomField = new DynamicControl(ctlPARENT, sNAME);

                    if (ctlCustomField.Exists && ctlCustomField.Type != "Literal")
                    {
                        if (nFieldIndex == 0)
                            oQuery.CommandText += "   set ";
                        else
                            oQuery.CommandText += "     , ";

                        oQuery.CommandText += sNAME + " = @" + sNAME + ControlChars.CrLf;

                        DynamicControl ctlCustomField_File = new DynamicControl(ctlPARENT, sNAME + "_File");

                        if (sCsType == "Guid" && ctlCustomField.Type == "HtmlInputHidden" && ctlCustomField_File.Exists)
                        {
                            LoadImage(ctlPARENT, gID, sNAME);
                        }
                        SqlParameter oParam = new SqlParameter();
                        switch (sCsType)
                        {
                            case "Guid":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.UniqueIdentifier);
                                oParam.Value = ctlCustomField.ID;
                                break;
                            case "short":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Int);
                                oParam.Value = ctlCustomField.IntegerValue;
                                break;
                            case "Int32":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Int);
                                oParam.Value = ctlCustomField.IntegerValue;
                                break;
                            case "Int64":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Int);
                                oParam.Value = ctlCustomField.IntegerValue;
                                break;
                            case "float":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Float);
                                oParam.Value = ctlCustomField.FloatValue;
                                break;
                            case "decimal":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Decimal);
                                oParam.Value = ctlCustomField.DecimalValue;
                                break;
                            case "bool":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.Bit);
                                oParam.Value = ctlCustomField.Checked;
                                break;
                            case "DateTime":
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.DateTime);
                                oParam.Value = ctlCustomField.DateValue;
                                break;
                            default:
                                oParam = new SqlParameter("@" + sNAME, SqlDbType.NVarChar, nMAX_SIZE);
                                oParam.Value = ctlCustomField.Text;
                                break;
                        }
                        nFieldIndex++;
                    }
                }
                if (nFieldIndex > 0)
                {
                    oQuery.CommandText += " where ID_C = @ID_C" + ControlChars.CrLf;
                    SqlParameter oParamID = new SqlParameter("@ID_C", SqlDbType.UniqueIdentifier);
                    oParamID.Value = gID;
                    oQuery.CommandType = CommandType.Text;
                    oQuery.ExecuteNonQuery(oQuery.CommandText);
                }
            }
        }