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 框架类型成员名称
文本VarWCharDBTYPE _ WSTRSystem.StringOleDbType.VarWChar
备忘录LongVarWChar DBTYPE _ WSTRSystem.StringOleDbType.LongVarWChar
字节数:UnsignedTinyIntDBTYPE _ UI 1System.ByteOleDbType.UnsignedTinyInt
是 / 否BooleanDBTYPE_BOOLSystem.BooleanOleDbType.Boolean
日期 / 时间DateTimeDBTYPE _ DATESystem.DateTimeOleDbType.date
货币十进制DBTYPE_NUMERICSystem.DecimalOleDbType.numeric
十进制数:十进制DBTYPE_NUMERICSystem.DecimalOleDbType.numeric
双数:DBTYPE_R8System.DoubleOleDbType.Double
Autonumber (复制 ID)GUIDDBTYPE_GUIDSystem.GuidOleDbType.guid
复制 (ID) 号:GUIDDBTYPE_GUIDSystem.GuidOleDbType.guid
Autonumber (长整型)整数DBTYPE_I4System.Int 32OleDbType.integer
数量: (长整型)整数DBTYPE_I4System.Int 32OleDbType.integer
OLE 对象LongVarBinaryDBTYPE_BYTES数组 System.ByteOleDbType.LongVarBinary
单个数字:单个DBTYPE_R4System.SingleOleDbType.single
整型数:SmallIntDBTYPE_I2System.Int 16OleDbType.SmallInt
二进制VarBinary *DBTYPE_BYTES数组 System.ByteOleDbType.binary
超链接VarWCharDBTYPE _ WSTRSystem.StringOleDbType.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;

  1.   /// <summary>
  2.   /// 数据库中与C#中的数据类型对照
  3.   /// </summary>
  4.   /// <param name="type"></param>
  5.   /// <returns></returns>
  6.   private string ChangeToCSharpType(string type)
  7.   {
  8.    string reval=string.Empty;
  9.    switch(type.ToLower())
  10.    {
  11.     case "int":
  12.      reval= "Int32";
  13.      break;
  14.     case "text":
  15.      reval= "String";
  16.      break;
  17.     case "bigint":
  18.      reval= "Int64";
  19.      break;
  20.     case "binary":
  21.      reval= "System.Byte[]";
  22.      break;
  23.     case "bit":
  24.      reval= "Boolean";
  25.      break;
  26.     case "char":
  27.      reval= "String";
  28.      break;
  29.     case "datetime":
  30.      reval= "System.DateTime";
  31.      break;
  32.     case "decimal":
  33.      reval= "System.Decimal";
  34.      break;
  35.     case "float":
  36.      reval= "System.Double";
  37.      break;
  38.     case "image":
  39.      reval= "System.Byte[]";
  40.      break;
  41.     case "money":
  42.      reval= "System.Decimal";
  43.      break;
  44.     case "nchar":
  45.      reval= "String";
  46.      break;
  47.     case "ntext":
  48.      reval= "String";
  49.      break;
  50.     case "numeric":
  51.      reval= "System.Decimal";
  52.      break;
  53.     case "nvarchar":
  54.      reval= "String";
  55.      break;
  56.     case "real":
  57.      reval= "System.Single";
  58.      break;
  59.     case "smalldatetime":
  60.      reval= "System.DateTime";
  61.      break;
  62.     case "smallint":
  63.      reval= "Int16";
  64.      break;
  65.     case "smallmoney":
  66.      reval= "System.Decimal";
  67.      break;
  68.     case "timestamp":
  69.      reval= "System.DateTime";
  70.      break;
  71.     case "tinyint":
  72.      reval= "System.Byte";
  73.      break;
  74.     case "uniqueidentifier":
  75.      reval= "System.Guid";
  76.      break;
  77.     case "varbinary":
  78.      reval= "System.Byte[]";
  79.      break;
  80.     case "varchar":
  81.      reval= "String";
  82.      break;
  83.     case "Variant":
  84.      reval="Object";
  85.      break;
  86.     default:
  87.      reval= "String";
  88.      break;
  89.    }
  90.    return reval;
  91.   }

其中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;

 

 


 

www.pass0.com

要在 .NET Framework 4.7.2 使用 EF6 DbContext 创建 SQLite 数据库和多张数据表,您可以按照以下步骤操作: 1. 安装 SQLite 数据库引擎和 ADO.NET 数据提供程序。您可以从 SQLite 官网下载 SQLite 数据库引擎和 ADO.NET 数据提供程序的安装文件,然后按照提示进行安装。 2. 在 Visual Studio 中创建一个新的 .NET Framework 项目,选择“类库”作为项目类型。 3. 在“解决方案资源管理器”中,右键单击项目名称,选择“管理 NuGet 程序包”。 4. 在“NuGet 包管理器”中搜索并安装以下两个包: - EntityFramework - System.Data.SQLite 5. 在项目中添加一个新的类文件,命名为“MyDbContext.cs”。 6. 在“MyDbContext.cs”文件中,定义一个继承自“DbContext”的类,并添加以下代码: ```csharp using System.Data.Entity; public class MyDbContext : DbContext { public MyDbContext() : base("name=MyDbContext") { } public DbSet<Table1> Table1 { get; set; } public DbSet<Table2> Table2 { get; set; } } ``` 在上面的代码中,“Table1”和“Table2”是您需要创建的数据表的实体类,它们应该与数据库中的表对应。 7. 创建实体类“Table1.cs”和“Table2.cs”,并在其中定义数据表的结构。例如: ```csharp public class Table1 { [Key] public int Id { get; set; } public string Name { get; set; } } ``` 在上面的代码中,“Id”是主键,它会自动递增,您可以添加其他属性。 8. 在“App.config”文件中添加以下配置: ```xml <configuration> <connectionStrings> <add name="MyDbContext" connectionString="Data Source=MyDatabase.sqlite" providerName="System.Data.SQLite" /> </connectionStrings> </configuration> ``` 在上面的配置中,“MyDatabase.sqlite”是您要创建的 SQLite 数据库名称。 9. 在“Program.cs”文件中添加以下代码,以创建数据库并初始化数据表: ```csharp using System.Data.Entity; class Program { static void Main(string[] args) { Database.SetInitializer<MyDbContext>(new CreateDatabaseIfNotExists<MyDbContext>()); using (var context = new MyDbContext()) { context.Database.Initialize(false); } } } ``` 在上面的代码中,“SetInitializer”方法设置了数据表的初始化策略,这里我们使用“CreateDatabaseIfNotExists”策略,表示如果数据库不存在,则创建一个新的数据库。然后,通过“Initialize”方法初始化数据库和数据表。 10. 运行程序,您应该能够在 SQLite 数据库中看到创建的数据表。 以上就是在 .NET Framework 4.7.2 中使用 EF6 DbContext 创建 SQLite 数据库和多张数据表的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值