基础--得到字段或列的数据类型原创
51人赞赏了该文章
188次浏览
编辑于2024年06月06日 17:04:13
1、单据主键类型,form.PkFieldType
2、实体主键类型,Entity.PkFieldType
3、字段类型, Field.FieldType
4、如果是列,没有对应的字段,可以通过得到表的结构得到
DataTable schemaTable = null; string sql = string.Format("SELECT * FROM {0} WHERE 1=0", tableName); using (IDataReader rs = DBUtils.ExecuteReader(ctx, sql, null, CommandType.Text,CommandBehavior.SchemaOnly)) { schemaTable = rs.GetSchemaTable(); } var columnRows = schemaTable.Select("ColumnName = '" + columnName + "'"); var columnType = (Type)schemaRows[0]["DataType"]; if (columnType .Equals(typeof(string))) { var isString = true; } else if(columnType .Equals(typeof(Int32))) { var isInt = true; } else if(columnType.Equals(typeof(Int64))) { var isInt64 = true; }
5、在使用4时,有时候需要先判断表名是否存在
bool existsTable = false; SqlParam sqlPara = new SqlParam("@TABNAME", KDDbType.AnsiString, tableName.ToUpperInvariant()); String strSQL = string.Format(" SELECT * FROM KSQL_USERTABLES WHERE KSQL_TABNAME = @TABNAME "); using (IDataReader rs = DBUtils.ExecuteReader(ctx, strSQL, sqlPara)) { if (rs.Read()) { existsTable = true; } }
推荐阅读