diff --git a/插件库/Lskj.PubBomImportNew/FrmMain2.cs b/插件库/Lskj.PubBomImportNew/FrmMain2.cs index 0689599..b630aa7 100644 --- a/插件库/Lskj.PubBomImportNew/FrmMain2.cs +++ b/插件库/Lskj.PubBomImportNew/FrmMain2.cs @@ -403,6 +403,7 @@ namespace Lskj.PubBomImportNew //提交到数据库 try { + GridColumn primKeyColumn = gcMain.GridView.Columns.Where(n => n.FieldName.Equals(_primkey, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); string sql = "select * from " + _tableName + " where 1<>1"; SqlDataAdapter dat = BaseImpl.GetAdapterResult(sql); SqlCommandBuilder scb = new SqlCommandBuilder(dat); @@ -566,13 +567,29 @@ namespace Lskj.PubBomImportNew //if (mainKeyField != "") // tmpRow[mainKeyField] = mainKeyValue; - if (!string.IsNullOrEmpty(this._primkey)) + //if (!string.IsNullOrEmpty(this._primkey)) + //{ + // if (datatb.Columns.Contains(_primkey) && !string.IsNullOrWhiteSpace(_keyvalue)) + // { + // if (string.IsNullOrEmpty(tmpRow[_primkey] + "") || (tmpRow[_keyvalue] + "").Equals("0")) + // { + // tmpRow[_primkey] = _keyvalue; + // } + // } + //} + + + if (primKeyColumn != null) { - if (datatb.Columns.Contains(_primkey) && !string.IsNullOrWhiteSpace(_keyvalue)) + if (!datatb.Columns.Contains(primKeyColumn.FieldName)) { - if (string.IsNullOrEmpty(tmpRow[_primkey] + "") || (tmpRow[_keyvalue] + "").Equals("0")) + datatb.Columns.Add(primKeyColumn.FieldName); + } + if (datatb.Columns.Contains(primKeyColumn.FieldName) && !string.IsNullOrWhiteSpace(primKeyColumn.FieldName)) + { + if (string.IsNullOrEmpty(tmpRow[primKeyColumn.FieldName] + "") || (tmpRow[primKeyColumn.FieldName] + "").Equals("0")) { - tmpRow[_primkey] = _keyvalue; + tmpRow[primKeyColumn.FieldName] = _keyvalue; } } } @@ -1310,7 +1327,7 @@ namespace Lskj.PubBomImportNew count = 0; errorCount = 0; GridView gridView = gcMain.GridView; - + GridColumn primKeyColumn = gcMain.GridView.Columns.Where(n => n.FieldName.Equals(_primkey, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); DataTable columnsTable = new DataTable(); string searchSql = string.Format("select * from P_SpecialImportTab where moduleId = '{0}' and rightMenuName = '{1}'", Model.ModuleCode, Model.UnionModelCode); DataTable dataTable = SqlHelper.ExecuteDataTable(searchSql); @@ -1686,6 +1703,20 @@ namespace Lskj.PubBomImportNew { break; } + if (primKeyColumn != null) + { + if (!table.Columns.Contains(primKeyColumn.FieldName)) + { + table.Columns.Add(primKeyColumn.FieldName); + } + if (table.Columns.Contains(primKeyColumn.FieldName) && !string.IsNullOrWhiteSpace(primKeyColumn.FieldName)) + { + if (string.IsNullOrEmpty(dataRow[primKeyColumn.FieldName] + "") || (dataRow[primKeyColumn.FieldName] + "").Equals("0")) + { + dataRow[primKeyColumn.FieldName] = _keyvalue; + } + } + } table.Rows.Add(dataRow); count += 1; }