sqlite数据类型对应的 .NET 数据类型名称

我们在C#下使用Access,MS sql,Sqlite,Oracle数据库中 数据库数据类型

                    分别使用到 System.Data.OleDb.OleDbType            ---(Access) 

                                System.Data.SqlClient.SqlDbType         ---(MS SQL)

 

SQlite数据库 使用的是  System.Data.SQLite.TypeAffinity         ---(SQLite)

Oracle数据库 使用的是  System.Data.OracleClient.OracleType   ---(Oracle)

这些命名空间下的属性和数据类型对应关系如下:

 

下表列出最常见数据类型 MicrosoftAccess 和关系 OleDbType 枚举为 Microsoft.NETFramework 数据类型与这些数据类型中使用。

访问类型名称 数据库数据类型 OLEDB 类型 .NET 框架类型 成员名称
文本 VarWChar DBTYPE _ WSTR System.String OleDbType.VarWChar
备忘录 LongVarWChar  DBTYPE _ WSTR System.String OleDbType.LongVarWChar
字节数: UnsignedTinyInt DBTYPE _ UI 1 System.Byte OleDbType.UnsignedTinyInt
是 / 否 Boolean DBTYPE_BOOL System.Boolean OleDbType.Boolean
日期 / 时间 DateTime DBTYPE _ DATE System.DateTime OleDbType.date
货币 十进制 DBTYPE_NUMERIC System.Decimal OleDbType.numeric
十进制数: 十进制 DBTYPE_NUMERIC System.Decimal OleDbType.numeric
双数: 双 DBTYPE_R8 System.Double OleDbType.Double
Autonumber (复制 ID) GUID DBTYPE_GUID System.Guid OleDbType.guid
复制 (ID) 号: GUID DBTYPE_GUID System.Guid OleDbType.guid
Autonumber (长整型) 整数 DBTYPE_I4 System.Int 32 OleDbType.integer
数量: (长整型) 整数 DBTYPE_I4 System.Int 32 OleDbType.integer
OLE 对象 LongVarBinary DBTYPE_BYTES 数组 System.Byte OleDbType.LongVarBinary
单个数字: 单个 DBTYPE_R4 System.Single OleDbType.single
整型数: SmallInt DBTYPE_I2 System.Int 16 OleDbType.SmallInt
二进制 VarBinary * DBTYPE_BYTES 数组 System.Byte OleDbType.binary
超链接 VarWChar DBTYPE _ WSTR System.String OleDbType.VarWChar


 

 

其中MS SQL数据库     在 .NET 数据类型对应的名称:

            case "System.Boolean": return System.Data.SqlClient.SqlDbType.Bit;
                case "System.Single": return System.Data.SqlClient.SqlDbType.Real;
                case "System.Double": return System.Data.SqlClient.SqlDbType.Float;
                case "System.Int16": return System.Data.SqlClient.SqlDbType.Smallint;
                case "System.Int32": return System.Data.SqlClient.SqlDbType.Int;
                case "System.Int64": return System.Data.SqlClient.SqlDbType.Bigint;
                case "System.DateTime": return System.Data.SqlClient.SqlDbType.Datetime;
                case "System.Byte[]": return System.Data.SqlClient.SqlDbType.Image;
                case "System.String": return System.Data.SqlClient.SqlDbType.Nvarchar;

  /// <summary>
  /// 数据库中与C#中的数据类型对照
  /// </summary>
  /// <param name="type"></param>
  /// <returns></returns>
  private string ChangeToCSharpType(string type)
  {
   string reval=string.Empty;
   switch(type.ToLower())
   {
    case "int":
     reval= "Int32";
     break;
    case "text":
     reval= "String";
     break;
    case "bigint":
     reval= "Int64";
     break;
    case "binary":
     reval= "System.Byte[]";
     break;
    case "bit":
     reval= "Boolean";
     break;
    case "char":
     reval= "String";
     break;
    case "datetime":
     reval= "System.DateTime";
     break;
    case "decimal":
     reval= "System.Decimal";
     break;
    case "float":
     reval= "System.Double";
     break;
    case "image":
     reval= "System.Byte[]";
     break;
    case "money":
     reval= "System.Decimal";
     break;
    case "nchar":
     reval= "String";
     break;
    case "ntext":
     reval= "String";
     break;
    case "numeric":
     reval= "System.Decimal";
     break;
    case "nvarchar":
     reval= "String";
     break;
    case "real":
     reval= "System.Single";
     break;
    case "smalldatetime":
     reval= "System.DateTime";
     break;
    case "smallint":
     reval= "Int16";
     break;
    case "smallmoney":
     reval= "System.Decimal";
     break;
    case "timestamp":
     reval= "System.DateTime";
     break;
    case "tinyint":
     reval= "System.Byte";
     break;
    case "uniqueidentifier":
     reval= "System.Guid";
     break;
    case "varbinary":
     reval= "System.Byte[]";
     break;
    case "varchar":
     reval= "String";
     break;
    case "Variant":
     reval="Object";
     break;
    default:
     reval= "String";
     break;
   }
   return reval;
  }
其中SQlite数据库     在 .NET 数据类型对应的名称:(注:SQlite目前不支持存储过程)

          case "System.Boolean": return System.Data.SQLite.TypeAffinity.Int64;
                case "System.Single": return System.Data.SQLite.TypeAffinity.Double;
                case "System.Double": return System.Data.SQLite.TypeAffinity.Double;
                case "System.Int16": return System.Data.SQLite.TypeAffinity.Int64;
                case "System.Int32": return System.Data.SQLite.TypeAffinity.Int64;
                case "System.Int64": return System.Data.SQLite.TypeAffinity.Int64;
                case "System.DateTime": return System.Data.SQLite.TypeAffinity.DateTime;
                case "System.Byte[]": return System.Data.SQLite.TypeAffinity.Blob;
                case "System.String": return System.Data.SQLite.TypeAffinity.Text;

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/puloon/archive/2008/09/08/2899495.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值