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;
}
}
}
}
}