using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Configuration; using System.Data.Common; using HanHe.Utility; namespace HH.WMS.DAL { public class ComDbType { /// /// CHAR 字符类型 /// public static DbType CHAR { get { return GetDataType("CHAR"); } } /// /// FLOAT /// public static DbType FLOAT { get { return GetDataType("FLOAT"); } } /// /// 字符类型 /// public static DbType DOUBLE { get { return GetDataType("DOUBLE"); } } /// /// DECIMAL /// public static DbType DECIMAL { get { return GetDataType("DECIMAL"); } } /// /// INT 类型 默认32位 /// public static DbType INT { get { return GetDataType("INT"); } } /// /// INT16 /// public static DbType INT16 { get { return GetDataType("int16"); } } /// /// INT /// public static DbType INT32 { get { return GetDataType("int32"); } } /// /// INT64 /// public static DbType INT64 { get { return GetDataType("INT64"); } } /// /// VARCHAR /// public static DbType STRING { get { return GetDataType("VARCHAR"); } } /// /// DATE /// public static DbType DATE { get { return GetDataType("DATE"); } } /// /// CURSOR 仅oracle使用 /// public static DbType CURSOR { get { return GetDataType("CURSOR"); } } /// /// 针对oracle 传递指针参数的方法 /// /// SQL执行对象 /// 参数名称 /// 参数值类型 public static void AddOrcOutParameter(DbCommand command, string name, System.Data.OracleClient.OracleType dbType) { System.Data.OracleClient.OracleParameter _op = new System.Data.OracleClient.OracleParameter(name, System.Data.OracleClient.OracleType.Cursor); _op.Direction = ParameterDirection.Output; command.Parameters.Add(_op); } /// /// 得到数据类型 /// /// 字段类型 private static DbType GetDataType(string Type) { //得到数据类型 string DataConnectionType =ConstantBase.APP_DATA_TYPE; //ORACLE 数据库 if (DataConnectionType.ToUpper() == ComDbName.ORACLE) { //数据库类型转换为小谢 switch (Type.ToLower()) { case "char": return DbType.AnsiStringFixedLength; case "nchar": return DbType.StringFixedLength; case "float": return DbType.Single; case "double": return DbType.Double; case "decimal": return DbType.Decimal; case "int16": return DbType.Int16; case "int32": return DbType.Int32; case "int": return DbType.Int32; case "int64": return DbType.Int64; case "varchar": return DbType.AnsiString; case "nvarchar": return DbType.String; case "varchar2": return DbType.String; case "date": return DbType.DateTime; case "number": return DbType.VarNumeric; case "cursor": return DbType.Object; default: return DbType.String; } } else if (DataConnectionType.ToUpper() == ComDbName.MSSQL) { switch (Type.ToLower()) { case "char": return DbType.String; case "nchar": return DbType.String; case "float": return DbType.Single; case "double": return DbType.Double; case "decimal": return DbType.Decimal; case "int": return DbType.Int32; case "int16": return DbType.Int16; case "int32": return DbType.Int32; case "int64": return DbType.Int64; case "varchar": return DbType.String; case "nvarchar": return DbType.String; case "date": return DbType.DateTime; case "number": return DbType.Decimal; default: return DbType.String; } } else //MYSQL { switch (Type) { case "char": return DbType.String; case "nchar": return DbType.String; case "float": return DbType.Single; case "double": return DbType.Double; case "decimal": return DbType.Decimal; case "int": return DbType.Int32; case "int16": return DbType.Int16; case "int32": return DbType.Int32; case "int64": return DbType.Int64; case "varchar": return DbType.AnsiString; case "nvarchar": return DbType.String; case "date": return DbType.DateTime; case "number": return DbType.Decimal; default: return DbType.String; } } } } }