/// <summary> /// 转换SAP类型为NET类型。 /// </summary> /// <param name="dt"></param> private static void _TransFormDataTypeForDt(DataTable dt) { bool has_inttype_column = false; bool has_dotnettype_column = false; bool has_dbtype_column = false; bool has_sqltype_column = false; if (dt.Columns.Contains("INTTYPE")) { has_inttype_column = true; } if (dt.Columns.Contains("DOTNETTYPE")) { has_dotnettype_column = true; } if (dt.Columns.Contains("DBTYPE")) { has_dbtype_column = true; } if (dt.Columns.Contains("SQLTYPE")) { has_sqltype_column = true; } foreach (DataRow row in dt.Rows) { if (has_inttype_column && has_dotnettype_column) { row["DOTNETTYPE"] = RfcTypeConvertor.AbapInnerTypeToSystemType(row["INTTYPE"].ToString()).ToString(); Type e = Type.GetType(row["DOTNETTYPE"].ToString()); row["DOTNETTYPE"] = row["DOTNETTYPE"].ToString().Replace("System.", ""); if (row["DOTNETTYPE"].ToString().Contains("Int")) { row["DOTNETTYPE"] = "int"; } if (has_dbtype_column) { row["DBTYPE"] = SAPINT.DbHelper.DbTypeConvertor.ToDbType(e).ToString(); } if (has_sqltype_column) { row["SQLTYPE"] = SAPINT.DbHelper.DbTypeConvertor.ToSqlDbType(e).ToString(); } } } }
/// <summary> /// 把SAP类型转换成对应的NET类型。 /// </summary> public void TransformDataType() { if (Fields == null) { return; } Fields.ForEach(row => { row.DOTNETTYPE = RfcTypeConvertor.AbapInnerTypeToSystemType(row.INTTYPE).ToString(); Type e = Type.GetType(row.DOTNETTYPE); row.DOTNETTYPE.Replace("System.", ""); if (row.DOTNETTYPE.Contains("Int")) { row.DOTNETTYPE = "int"; } row.DBTYPE = SAPINT.DbHelper.DbTypeConvertor.ToDbType(e).ToString(); row.SQLTYPE = SAPINT.DbHelper.DbTypeConvertor.ToSqlDbType(e).ToString(); }); }