System.Data.DbType与各类数据库的数据类型的映射关系

C#的数据类型及数据类型的转换 一、C#的数据类型 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 1、值类型(Value types) 值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。 值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您... 阅读详情

有如下类型的映射对照:

  1. System.Data.SqlClient.SqlDbType
  2. System.Data.OleDb.OleDbType
  3. System.Data.Odbc.OdbcType
  4. System.Data.OracleClient.OracleType
  5. Oracle.ManagedDataAccess.ClientOracleDbType

格式:

DbType.枚举名(枚举值) = DbType.枚举名(枚举值)

1、与 System.Data.SqlClient.SqlDbType转换

System.Data.SqlClient.SqlDbType.BigInt(0)  = System.Data.DbType.Int64(12)
System.Data.SqlClient.SqlDbType.Binary(1)  = System.Data.DbType.Binary(1)
System.Data.SqlClient.SqlDbType.Bit(2)  = System.Data.DbType.Boolean(3)
System.Data.SqlClient.SqlDbType.Char(3)  = System.Data.DbType.AnsiStringFixedLength(22)
System.Data.SqlClient.SqlDbType.DateTime(4)  = System.Data.DbType.DateTime(6)
System.Data.SqlClient.SqlDbType.Decimal(5)  = System.Data.DbType.Decimal(7)
System.Data.SqlClient.SqlDbType.Float(6)  = System.Data.DbType.Double(8)
System.Data.SqlClient.SqlDbType.Image(7)  = System.Data.DbType.Binary(1)
System.Data.SqlClient.SqlDbType.Int(8)  = System.Data.DbType.Int32(11)
System.Data.SqlClient.SqlDbType.Money(9)  = System.Data.DbType.Currency(4)
System.Data.SqlClient.SqlDbType.NChar(10)  = System.Data.DbType.StringFixedLength(23)
System.Data.SqlClient.SqlDbType.NText(11)  = System.Data.DbType.String(16)
System.Data.SqlClient.SqlDbType.NVarChar(12)  = System.Data.DbType.String(16)
System.Data.SqlClient.SqlDbType.Real(13)  = System.Data.DbType.Single(15)
System.Data.SqlClient.SqlDbType.UniqueIdentifier(14)  = System.Data.DbType.Guid(9)
System.Data.SqlClient.SqlDbType.SmallDateTime(15)  = System.Data.DbType.DateTime(6)
System.Data.SqlClient.SqlDbType.SmallInt(16)  = System.Data.DbType.Int16(10)
System.Data.SqlClient.SqlDbType.SmallMoney(17)  = System.Data.DbType.Currency(4)
System.Data.SqlClient.SqlDbType.Text(18)  = System.Data.DbType.AnsiString(0)
System.Data.SqlClient.SqlDbType.Timestamp(19)  = System.Data.DbType.Binary(1)
System.Data.SqlClient.SqlDbType.TinyInt(20)  = System.Data.DbType.Byte(2)
System.Data.SqlClient.SqlDbType.VarBinary(21)  = System.Data.DbType.Binary(1)
System.Data.SqlClient.SqlDbType.VarChar(22)  = System.Data.DbType.AnsiString(0)
System.Data.SqlClient.SqlDbType.Variant(23)  = System.Data.DbType.Object(13)
System.Data.SqlClient.SqlDbType.Xml(25)  = System.Data.DbType.Xml(25)
System.Data.SqlClient.SqlDbType.Udt(29)  = System.Data.DbType.Object(13)
System.Data.SqlClient.SqlDbType.Structured(30)  = System.Data.DbType.Object(13)
System.Data.SqlClient.SqlDbType.Date(31)  = System.Data.DbType.Date(5)
System.Data.SqlClient.SqlDbType.Time(32)  = System.Data.DbType.Time(17)
System.Data.SqlClient.SqlDbType.DateTime2(33)  = System.Data.DbType.DateTime2(26)
System.Data.SqlClient.SqlDbType.DateTimeOffset(34)  = System.Data.DbType.DateTimeOffset(27)

2、与 System.Data.OleDb.OleDbType转换

System.Data.OleDb.OleDbType.Empty(0)  = System.Data.DbType.Object(13)
System.Data.OleDb.OleDbType.SmallInt(2)  = System.Data.DbType.Int16(10)
System.Data.OleDb.OleDbType.Integer(3)  = System.Data.DbType.Int32(11)
System.Data.OleDb.OleDbType.Single(4)  = System.Data.DbType.Single(15)
System.Data.OleDb.OleDbType.Double(5)  = System.Data.DbType.Double(8)
System.Data.OleDb.OleDbType.Currency(6)  = System.Data.DbType.Currency(4)
System.Data.OleDb.OleDbType.Date(7)  = System.Data.DbType.DateTime(6)
System.Data.OleDb.OleDbType.BSTR(8)  = System.Data.DbType.String(16)
System.Data.OleDb.OleDbType.IDispatch(9)  = System.Data.DbType.Object(13)
System.Data.OleDb.OleDbType.Error(10)  = System.Data.DbType.Int32(11)
System.Data.OleDb.OleDbType.Boolean(11)  = System.Data.DbType.Boolean(3)
System.Data.OleDb.OleDbType.Variant(12)  = System.Data.DbType.Object(13)
System.Data.OleDb.OleDbType.IUnknown(13)  = System.Data.DbType.Object(13)
System.Data.OleDb.OleDbType.Decimal(14)  = System.Data.DbType.Decimal(7)
System.Data.OleDb.OleDbType.TinyInt(16)  = System.Data.DbType.SByte(14)
System.Data.OleDb.OleDbType.UnsignedTinyInt(17)  = System.Data.DbType.Byte(2)
System.Data.OleDb.OleDbType.UnsignedSmallInt(18)  = System.Data.DbType.UInt16(18)
System.Data.OleDb.OleDbType.UnsignedInt(19)  = System.Data.DbType.UInt32(19)
System.Data.OleDb.OleDbType.BigInt(20)  = System.Data.DbType.Int64(12)
System.Data.OleDb.OleDbType.UnsignedBigInt(21)  = System.Data.DbType.UInt64(20)
System.Data.OleDb.OleDbType.Filetime(64)  = System.Data.DbType.DateTime(6)
System.Data.OleDb.OleDbType.Guid(72)  = System.Data.DbType.Guid(9)
System.Data.OleDb.OleDbType.Binary(128)  = System.Data.DbType.Binary(1)
System.Data.OleDb.OleDbType.Char(129)  = System.Data.DbType.AnsiStringFixedLength(22)
System.Data.OleDb.OleDbType.WChar(130)  = System.Data.DbType.StringFixedLength(23)
System.Data.OleDb.OleDbType.Numeric(131)  = System.Data.DbType.Decimal(7)
System.Data.OleDb.OleDbType.DBDate(133)  = System.Data.DbType.Date(5)
System.Data.OleDb.OleDbType.DBTime(134)  = System.Data.DbType.Time(17)
System.Data.OleDb.OleDbType.DBTimeStamp(135)  = System.Data.DbType.DateTime(6)
System.Data.OleDb.OleDbType.PropVariant(138)  = System.Data.DbType.Object(13)
System.Data.OleDb.OleDbType.VarNumeric(139)  = System.Data.DbType.VarNumeric(21)
System.Data.OleDb.OleDbType.VarChar(200)  = System.Data.DbType.AnsiString(0)
System.Data.OleDb.OleDbType.LongVarChar(201)  = System.Data.DbType.AnsiString(0)
System.Data.OleDb.OleDbType.VarWChar(202)  = System.Data.DbType.String(16)
System.Data.OleDb.OleDbType.LongVarWChar(203)  = System.Data.DbType.String(16)
System.Data.OleDb.OleDbType.VarBinary(204)  = System.Data.DbType.Binary(1)
System.Data.OleDb.OleDbType.LongVarBinary(205)  = System.Data.DbType.Binary(1)

3、与System.Data.Odbc.OdbcType转换

System.Data.Odbc.OdbcType.BigInt(1)  = System.Data.DbType.Int64(12)
System.Data.Odbc.OdbcType.Binary(2)  = System.Data.DbType.Binary(1)
System.Data.Odbc.OdbcType.Bit(3)  = System.Data.DbType.Boolean(3)
System.Data.Odbc.OdbcType.Char(4)  = System.Data.DbType.AnsiStringFixedLength(22)
System.Data.Odbc.OdbcType.DateTime(5)  = System.Data.DbType.DateTime(6)
System.Data.Odbc.OdbcType.Decimal(6)  = System.Data.DbType.Decimal(7)
System.Data.Odbc.OdbcType.Numeric(7)  = System.Data.DbType.Decimal(7)
System.Data.Odbc.OdbcType.Double(8)  = System.Data.DbType.Double(8)
System.Data.Odbc.OdbcType.Image(9)  = System.Data.DbType.Binary(1)
System.Data.Odbc.OdbcType.Int(10)  = System.Data.DbType.Int32(11)
System.Data.Odbc.OdbcType.NChar(11)  = System.Data.DbType.StringFixedLength(23)
System.Data.Odbc.OdbcType.NText(12)  = System.Data.DbType.String(16)
System.Data.Odbc.OdbcType.NVarChar(13)  = System.Data.DbType.String(16)
System.Data.Odbc.OdbcType.Real(14)  = System.Data.DbType.Single(15)
System.Data.Odbc.OdbcType.UniqueIdentifier(15)  = System.Data.DbType.Guid(9)
System.Data.Odbc.OdbcType.SmallDateTime(16)  = System.Data.DbType.DateTime(6)
System.Data.Odbc.OdbcType.SmallInt(17)  = System.Data.DbType.Int16(10)
System.Data.Odbc.OdbcType.Text(18)  = System.Data.DbType.AnsiString(0)
System.Data.Odbc.OdbcType.Timestamp(19)  = System.Data.DbType.Binary(1)
System.Data.Odbc.OdbcType.TinyInt(20)  = System.Data.DbType.Byte(2)
System.Data.Odbc.OdbcType.VarBinary(21)  = System.Data.DbType.Binary(1)
System.Data.Odbc.OdbcType.VarChar(22)  = System.Data.DbType.AnsiString(0)
System.Data.Odbc.OdbcType.Date(23)  = System.Data.DbType.Date(5)
System.Data.Odbc.OdbcType.Time(24)  = System.Data.DbType.Time(17)

4、与System.Data.OracleClient.OracleType转换

System.Data.OracleClient.OracleType.BFile(1)  = System.Data.DbType.Binary(1)
System.Data.OracleClient.OracleType.Blob(2)  = System.Data.DbType.Binary(1)
System.Data.OracleClient.OracleType.Char(3)  = System.Data.DbType.AnsiStringFixedLength(22)
System.Data.OracleClient.OracleType.Clob(4)  = System.Data.DbType.AnsiString(0)
System.Data.OracleClient.OracleType.Cursor(5)  = System.Data.DbType.Object(13)
System.Data.OracleClient.OracleType.DateTime(6)  = System.Data.DbType.DateTime(6)
System.Data.OracleClient.OracleType.IntervalDayToSecond(7)  = System.Data.DbType.Object(13)
System.Data.OracleClient.OracleType.IntervalYearToMonth(8)  = System.Data.DbType.Int32(11)
System.Data.OracleClient.OracleType.LongRaw(9)  = System.Data.DbType.Binary(1)
System.Data.OracleClient.OracleType.LongVarChar(10)  = System.Data.DbType.AnsiString(0)
System.Data.OracleClient.OracleType.NChar(11)  = System.Data.DbType.StringFixedLength(23)
System.Data.OracleClient.OracleType.NClob(12)  = System.Data.DbType.String(16)
System.Data.OracleClient.OracleType.Number(13)  = System.Data.DbType.VarNumeric(21)
System.Data.OracleClient.OracleType.NVarChar(14)  = System.Data.DbType.String(16)
System.Data.OracleClient.OracleType.Raw(15)  = System.Data.DbType.Binary(1)
System.Data.OracleClient.OracleType.RowId(16)  = System.Data.DbType.AnsiString(0)
System.Data.OracleClient.OracleType.Timestamp(18)  = System.Data.DbType.DateTime(6)
System.Data.OracleClient.OracleType.TimestampLocal(19)  = System.Data.DbType.DateTime(6)
System.Data.OracleClient.OracleType.TimestampWithTZ(20)  = System.Data.DbType.DateTime(6)
System.Data.OracleClient.OracleType.VarChar(22)  = System.Data.DbType.AnsiString(0)
System.Data.OracleClient.OracleType.Byte(23)  = System.Data.DbType.Byte(2)
System.Data.OracleClient.OracleType.UInt16(24)  = System.Data.DbType.UInt16(18)
System.Data.OracleClient.OracleType.UInt32(25)  = System.Data.DbType.UInt32(19)
System.Data.OracleClient.OracleType.SByte(26)  = System.Data.DbType.SByte(14)
System.Data.OracleClient.OracleType.Int16(27)  = System.Data.DbType.Int16(10)
System.Data.OracleClient.OracleType.Int32(28)  = System.Data.DbType.Int32(11)
System.Data.OracleClient.OracleType.Float(29)  = System.Data.DbType.Single(15)
System.Data.OracleClient.OracleType.Double(30)  = System.Data.DbType.Double(8)

5、与Oracle.ManagedDataAccess.ClientOracleDbType转换

Oracle.ManagedDataAccess.ClientOracleDbType.BFile = System.Data.DbType.Binary(1)
Oracle.ManagedDataAccess.ClientOracleDbType.Blob = 102,
Oracle.ManagedDataAccess.ClientOracleDbType.Byte = 103,
Oracle.ManagedDataAccess.ClientOracleDbType.Char = 104,
Oracle.ManagedDataAccess.ClientOracleDbType.Clob = 105,
Oracle.ManagedDataAccess.ClientOracleDbType.Date = 106,
Oracle.ManagedDataAccess.ClientOracleDbType.Decimal = 107,
Oracle.ManagedDataAccess.ClientOracleDbType.Double = 108,
Oracle.ManagedDataAccess.ClientOracleDbType.Long = 109,
Oracle.ManagedDataAccess.ClientOracleDbType.LongRaw = 110,
Oracle.ManagedDataAccess.ClientOracleDbType.Int16 = 111,
Oracle.ManagedDataAccess.ClientOracleDbType.Int32 = 112,
Oracle.ManagedDataAccess.ClientOracleDbType.Int64 = 113,
Oracle.ManagedDataAccess.ClientOracleDbType.IntervalDS = 114,
Oracle.ManagedDataAccess.ClientOracleDbType.IntervalYM = 115,
Oracle.ManagedDataAccess.ClientOracleDbType.NClob = 116,
Oracle.ManagedDataAccess.ClientOracleDbType.NChar = 117,
Oracle.ManagedDataAccess.ClientOracleDbType.NVarchar2 = 119,
Oracle.ManagedDataAccess.ClientOracleDbType.Raw = 120,
Oracle.ManagedDataAccess.ClientOracleDbType.RefCursor = 121,
Oracle.ManagedDataAccess.ClientOracleDbType.Single = 122,
Oracle.ManagedDataAccess.ClientOracleDbType.TimeStamp = 123,
Oracle.ManagedDataAccess.ClientOracleDbType.TimeStampLTZ = 124,
Oracle.ManagedDataAccess.ClientOracleDbType.TimeStampTZ = 125,
Oracle.ManagedDataAccess.ClientOracleDbType.Varchar2 = 126,
Oracle.ManagedDataAccess.ClientOracleDbType.XmlType = 127,
Oracle.ManagedDataAccess.ClientOracleDbType.BinaryDouble = 132,   
Oracle.ManagedDataAccess.ClientOracleDbType.BinaryFloat = 133,
Oracle.ManagedDataAccess.ClientOracleDbType.Boolean = 134,

从 Stored Procedure 取得资料 - 单一参数

步骤

  1. 建立 Stored Procedure
  2. 建立对应 Stored Procedure 同名的 Entity Model
  3. 以 DbContext.SpEntityModel.FromSqlRaw(sqlScript, sqlParameter) 的方式来取出结果FromSqlRaw 不支援 IQueryable 接上 FirstOrDefault(),所以先透过 AsEnumerable() 再转成 IEnumerable,再取第一笔

Stored Procedure

DROP PROCEDURE IF EXISTS [dbo].[usp_Test];  
GO

CREATE PROCEDURE [dbo].[usp_Test]
    @Id varchar(10)
AS
    SELECT @Id as Id;
GO

C#

using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Linq;

namespace EfCoreStoredProcedure
{
    class Program
    {
        static void Main(string[] args)
        {
            var context = DiFactory.GetService<NorthwindContext>();

            var parameter = new SqlParameter { 
                ParameterName = "@Id",
                DbType =  System.Data.DbType.AnsiString,
                Size = 10,
                Value = "1"
            };
            var result = context.usp_Tests.FromSqlRaw("exec [dbo].[usp_Test] @Id", parameter)
                                // 因为 FromSqlRaw 不支援 IQueryable<T> 接上 FirstOrDefault(),所以先转成 IEnumerable<T>,再取第一笔
                                .AsEnumerable()        
                                .FirstOrDefault();
            Console.WriteLine(result.Id);
        }
    }

    public static class DiFactory
    {
        private static readonly ServiceProvider _provider;

        static DiFactory()
        {
            var _services = new ServiceCollection();

            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json", optional: true)
                                .Build();
            _services.AddSingleton(_ => configuration);

            _services.AddDbContext<NorthwindContext>(
                options =>
                    options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));

            _provider = _services.BuildServiceProvider();
        }

        public static T GetService<T>()
        {
            return _provider.GetService<T>();
        }
    }

    public class NorthwindContext : DbContext
    {
        public NorthwindContext(DbContextOptions<NorthwindContext> options) : base(options) { }
        public DbSet<usp_Test> usp_Tests { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
        }
    }

    public class usp_Test
    {
        public string Id { get; set; }
    }
}

从 Stored Procedure 取得资料 - 一个资料表参数

前置范例

User Defined Table Type

IF type_id('[dbo].[tIdName]') IS NOT NULL
        DROP TYPE [dbo].[tIdName];

CREATE TYPE [dbo].[tIdName] AS TABLE
    (
        [Id] int,
        [Name] nvarchar(10)
    );

Stored Procedure

DROP PROCEDURE IF EXISTS [dbo].[usp_Test];  
GO

CREATE PROCEDURE [dbo].[usp_Test]
    @input [dbo].[tIdName] READONLY
AS
    SELECT * from @input
GO

C#

using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Data;
using System.Linq;

namespace EfCoreStoredProcedure
{
    class Program
    {
        static void Main(string[] args)
        {
            var context = DiFactory.GetService<NorthwindContext>();

            var parameterDataTable = new SqlParameter
            {
                ParameterName = "@input",
                SqlDbType = SqlDbType.Structured,
                TypeName = "[dbo].[tIdName]",
                Value = GenerateDataTable()
            };

            var result = context.usp_Tests.FromSqlInterpolated($"exec [dbo].[usp_Test] {parameterDataTable}")
                                .AsEnumerable();

            foreach (var item in result)
            {
                Console.WriteLine(item.Id);
                Console.WriteLine(item.Name);
            }
        }

        private static DataTable GenerateDataTable()
        {
            var result = new DataTable();
            result.Columns.Add("Id", typeof(int));
            result.Columns.Add("Name", typeof(string));

            var row = result.NewRow();
            row[0] = 1;
            row[1] = "A";
            result.Rows.Add(row);

            row = result.NewRow();
            row[0] = 2;
            row[1] = "B";
            result.Rows.Add(row);

            return result;
        }
    }

    public static class DiFactory
    {
        private static readonly ServiceProvider _provider;

        static DiFactory()
        {
            var _services = new ServiceCollection();

            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json", optional: true)
                                .Build();
            _services.AddSingleton(_ => configuration);

            _services.AddDbContext<NorthwindContext>(
                options =>
                    options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));

            _provider = _services.BuildServiceProvider();
        }

        public static T GetService<T>()
        {
            return _provider.GetService<T>();
        }
    }

    public class NorthwindContext : DbContext
    {
        public NorthwindContext(DbContextOptions<NorthwindContext> options) : base(options) { }
        public DbSet<usp_Test> usp_Tests { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
        }
    }

    public class usp_Test
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}
DBType对应的C#类型 DBType对应的C#类型 AddInParameter Database 立即下载

相关推荐

new delete 详解

常规的new 和 delete 当需要内存时,可以使用new申请内存,但在用完内存时应当使用delete 去归还内存,以防止内存泄漏,具体使用方案见下面代码: int* ps = new int ; // 使用new 申明变量空间 ... ... delete ps ; '// delete 删除所申明的变量空间 上述代码将删除ps 指针指向的内存空间,但不会删除指针本身,即仍然可以使用该指针去指向其他int 类型的变量。new 和 delete 一定需要成对的使用否则极易发生内存泄漏。 注意:不

qq_42138448的博客 6938

无法将类型“string”隐式转换为“System.Data.SqlClient.SqlParameter”(错误)

   cmd.Parameters["@name"].Value=kehuname.Text;   cmd.Parameters["@fuzeren"].Value=fuzeren.Text;   cmd.Parameters["@jibie"].Value=jibie.Text;   cmd.Parameters["@jianjie"].Value=jianjie.Text;无法将类型“st

Asp.Net开发手记 3862

Android WIFI体系:深入解析WifiLock与MulticastLock的底层实现与性能优化

本文深入解析Android WIFI体系中WifiLock与MulticastLock的底层实现机制与性能优化策略。WifiLock通过阻止Wi-Fi休眠提升网络性能,尤其WIFI_MODE_FULL_HIGH_PERF模式可显著降低延迟;MulticastLock则控制组播数据接收,但会增加功耗。文章详细探讨了其与wpa_supplicant、HAL层的交互,并提供高性能场景下的优化实践与功耗平衡方案。

php55的博客 1079

DbType 对应类型

网上搜的 对应关系 SqlServer CodeSmith bigint Int64 binary Binary bit Boolean char AnsiStringFixedLength datetime

尼奥 5690

从原理到实践:手把手教你用XY2-100协议控制激光振镜(含引脚定义图)

本文详细解析了XY2-100协议在激光振镜控制中的应用,从硬件接口定义到时序分析,再到Verilog硬件逻辑实现,提供了完整的开发指南。通过实际案例和优化策略,帮助开发者快速掌握高精度激光振镜控制技术,提升加工质量和效率。

weixin_30505225的博客 399

Windows系统中 Xmanager 6 企业版下载安装激活教程

Xmanager 6 企业版安装激活教程 1.Xmanager 6 下载网址:https://yunpan.360.cn/surl_yrJrWq3GmjN 2. 双击 Xmanager-6.0.0169r 安装 3. 点击运行按钮 4. 点击下一步 5. 选择我接受许可证协议中的条款(A), 点击下一步。 6. 输入用户名:byg,公司名称:microsoft,序...

mry6的博客 9872

System.Data.DbType 与其它DbType的映射关系

System.Data.DbType 与其它DbType的映射关系 有如下类型的映射对照: System.Data.SqlClient.SqlDbType System.Data.OleDb.OleDbType System.Data.Odbc.OdbcType System.Data.OracleClient.OracleType ...

weixin_30270889的博客 351

python特征选择pso_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...

花费了很长时间整理编辑,转载请联系作者授权,违者必究。特征选择(Feature selection)是在构建预测模型的过程中减少输入变量的一个过程。它是机器学习中非常重要的一步并在很大程度上可以提高模型预测精度。这里我总结了一些机器学习中常见的比较有用的特征选择方法并附上相关python实现code。希望可以给大家一些启发。首先,我们为什么要进行特征选择呢?它有以下几个优点:减少过拟合:冗余数据常...

weixin_39927158的博客 1161

DataType (System.Type t)转 DbType

private DbType GetDBType(System.Type theType) { IDbDataParameter iDbDataParameter = GetIDbDataParameter(); System.ComponentModel.TypeConverter tc = System.ComponentMode

zp2zjl的专栏 2575

嵌入式设备的switch 以及PHY 芯片调试和选型 (1)

越来越的设备需要多网口的需求,于是需求搭配一个交换机实现网口的扩展。但是很多软件或是硬件工程师在实际选型和应用中经常会遇到一些问题。这里总结一下,避免大家采坑。 几个概念: MAC(介质访问控制),可以理解成数据链路层即可 PHY(物理性),简单理解层转成物理层的连接组件即可 控制接口(MDC/DMIO,I2C,...

睿峰的博客 1万+

【33】软考软件设计师——算法题(二):贪心法与回溯法深度精讲|第4题进阶满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第33篇,承接第32篇分治法与动态规划,聚焦**下午第4题算法大题进阶核心**,详解贪心法与回溯法两大高频难点算法。全文超4000字深度拆解贪心法核心原理、贪心选择性质、局部最优推全局最优的底层逻辑,厘清贪心算法适用边界与经典误区;深挖回溯法深度优先遍历思想、递归回溯三步流程、可行性剪枝与最优性剪枝两大核心技巧;全覆盖活动选择、零钱兑换、01背包贪心禁区、八皇后、全排列等软考必考经典题型;配套标准化算法框架代码、考场填空模板、剪枝优化实操案例

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 438

java dbtype_System.Data.DbType与各类数据库的数据类型的映射关系

有如下类型的映射对照:System.Data.SqlClient.SqlDbTypeSystem.Data.OleDb.OleDbTypeSystem.Data.Odbc.OdbcTypeSystem.Data.OracleClient.OracleTypeOracle.ManagedDataAccess.ClientOracleDbType格式:DbType.枚举名(枚举值) = DbType....

weixin_34551601的博客 559

构建个体结构脑网络的另一种方法

这篇文献提出了一种构建个体结构脑网络的方法即Morphometric INverse Divergence (MIND),通过T1像数据即可对每个被试构建一个脑网络,且通过多个特征进行构建而非单一的特征。即可获得由4个特征得到的个体结构网络矩阵,可以根据自己的需求采用不同的特征组合得到网络矩阵,也可以结合T1/T2像得到髓鞘化相关的网络矩阵,后续可修改代码批量处理自己的数据。这是文献贴出来的代码。在终端直接克隆到本地。2.修改路径运行代码。

weixin_52073820的博客 822

System.Data.DbType和数据库映射关系

有如下类型的映射对照: System.Data.SqlClient.SqlDbType System.Data.OleDb.OleDbType System.Data.Odbc.OdbcType System.Data.OracleClient.OracleType 格式: DbType.枚举名(枚举值)=DbType.枚举名(枚举值) 1 ===...

331

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

System.Data.DbType映射关系

有如下类型的映射对照: System.Data.SqlClient.SqlDbType System.Data.OleDb.OleDbType System.Data.Odbc.OdbcType System.Data.OracleClient.OracleType 格式: DbType.枚举名(枚举值)=DbType.枚举名(枚举值) ===========...

weixin_34346099的博客 210

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Oracle数据类型与.NET中的对应关系

转自trf123trf原文Oracle数据类型与.NET中的对应关系,有修改 Oracle连接添加的引用不同,会存在数据类型不同以及其他一些差别,就工作中遇到的问题暂时总结下。 两种不同的添加引用语句: (1)System.Data.OracleClient; (2)Oracle.DataAccess.Client; Oracle.DataAccess.Type; 采用第二...

weixin_30951231的博客 81

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

我们在C#下使用Access,MS sql,Sqlite,Oracle数据库中 数据库数据类型                     分别使用到 System.Data.OleDb.OleDbType            ---(Access)                                  System.Data.SqlClient.SqlDbType

xugaoch的专栏 1272

oracle中sde_type对应关系,<转>Oracle数据类型与.NET中的对应关系

Oracle连接添加的引用不同,会存在数据类型不同以及其他一些差别,就工作中遇到的问题暂时总结下。两种不同的添加引用语句:(1)System.Data.OracleClient;(2)Oracle.DataAccess.Client;Oracle.DataAccess.Type;采用第二种引用,创建的OracleCommand实例有ArrayBindCount属性,可用于传入数组型参数,执行多次储...

weixin_39658318的博客 196

SQL Server 与 ADO.NET 数据类型映射

SQL Server 数据类型映射 .NET Framework 4.5 SQL Server 和 .NET Framework 基于不同的类型系统。例如,.NET FrameworkDecimal结构的最大小数位数为 28,而 SQL Server 的 decimal 和 numeric 数据类型的最大小数位数为 38。为了在读取和写入数据时维护数据的完...

weixin_30456039的博客 172

Access数据类型与.net OleDbType枚举类型的对应

访问类型名称 数据库数据类型 OLEDB 类型 .NET 框架类型 成员名称 文本 VarWChar DBTYPE _ WSTR System.String OleDbType.VarWChar 备忘录 LongVarWCha R DBTYPE _ WSTR System.String OleDbType.LongVarWChar ...

weixin_30345577的博客 69
上一篇: ASP.NET Core 中的应用启动
下一篇: Typescript类型全解
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值