public static string DBm_sql_Insert_fkey_column(string RootTableName, Type type, Type col_type, object objValue, List<SQL_Parameter> lsqlPar, System.Data.SqlDbType dbType, bool is_output, int size, List<DBm_col_name_and_param> lPar_DBm_col_name_and_param) { string sql_DBm_Image_fkey_Insert = ""; string tbl_name = null; string col_name = null; string Par_DBm_Image_fkey_ID = null; string Par_col_name = null; string stype = type.ToString(); int iLast = stype.LastIndexOf('.'); int iLen = stype.Length; string stype_col_name = col_type.ToString(); int iLen_col_name = stype_col_name.Length; int iLen_col_name_Last = stype_col_name.LastIndexOf('.'); if (iLast > 0) { tbl_name = RootTableName + "_" + stype.Substring(iLast + 1, iLen - iLast + 1); } else { tbl_name = RootTableName + "_" + stype; } if (iLen_col_name_Last > 0) { col_name = stype_col_name.Substring(iLen_col_name_Last + 1, iLen_col_name - iLen_col_name_Last + 1); } else { col_name = stype_col_name; } Par_col_name = "@Par_" + col_name; Par_DBm_Image_fkey_ID = "@Par_" + tbl_name + "_" + col_name + "_ID"; SQL_Parameter SQL_Par = new SQL_Parameter(); SQL_Par.dbType = dbType; SQL_Par.IsOutputParameter = is_output; SQL_Par.Name = Par_col_name; SQL_Par.size = size; SQL_Par.Value = objValue; lsqlPar.Add(SQL_Par); sql_DBm_Image_fkey_Insert += "declare " + Par_DBm_Image_fkey_ID + " bigint \r\n"; sql_DBm_Image_fkey_Insert += "select " + Par_DBm_Image_fkey_ID + " = ID from " + tbl_name + " where " + col_name + " = " + Par_col_name + " \r\n"; sql_DBm_Image_fkey_Insert += @"if (" + Par_DBm_Image_fkey_ID + @" is null) begin insert into " + tbl_name + @" ( " + col_name + @" ) values ( " + Par_col_name + @" ) set " + Par_DBm_Image_fkey_ID + @" = SCOPE_IDENTITY() end "; DBm_col_name_and_param xDBm_col_name_and_param = new DBm_col_name_and_param(tbl_name + "_ID", Par_DBm_Image_fkey_ID); lPar_DBm_col_name_and_param.Add(xDBm_col_name_and_param); return sql_DBm_Image_fkey_Insert; }
public static void Add_DBm_col_name_and_param(string RootTableName, Type type, object objValue, System.Data.SqlDbType dbType, int size, List<SQL_Parameter> lsqlPar, List<DBm_col_name_and_param> lPar_DBm_col_name_and_param) { string Par_col_name = null; string col_name = null; string stype_col_name = type.ToString(); int iLen_col_name = stype_col_name.Length; int iLen_col_name_Last = stype_col_name.LastIndexOf('.'); if (iLen_col_name_Last > 0) { col_name = stype_col_name.Substring(iLen_col_name_Last + 1, iLen_col_name - iLen_col_name_Last + 1); } else { col_name = stype_col_name; } Par_col_name = "@Par_" + col_name; SQL_Parameter SQL_Par = new SQL_Parameter(); SQL_Par.dbType = dbType; SQL_Par.IsOutputParameter = false; SQL_Par.Name = Par_col_name; SQL_Par.size = size; SQL_Par.Value = objValue; lsqlPar.Add(SQL_Par); DBm_col_name_and_param xDBm_col_name_and_param = new DBm_col_name_and_param(col_name, Par_col_name); lPar_DBm_col_name_and_param.Add(xDBm_col_name_and_param); }