zoukankan      html  css  js  c++  java
  • System.Data.Dbtype转换为System.Data.SqlDbType

    最近在做一些OM Mapping的准备工作,新学了一招。

    如果要将System.Data.Dbtype转换为System.Data.SqlDbType,以前以为要写Switch Case语句。其实有很简单的方法:

            private System.Data.SqlDbType ConvertToSqlDbType(System.Data.DbType pSourceType)
            {
                SqlParameter paraConver = new SqlParameter();
                paraConver.DbType = pSourceType ;
                return paraConver.SqlDbType;
            }

    微软为你做好了转换。在SqlParameter 中你改变了其中一个就自动改变了另外一个。

     

    你也可以做一个自动生成mapping的方法,你想怎么映射就怎么映射,同理也可以对应oracle的类型

     

            [TestMethod]

    public void BuildDbTypeToSqlDbType()

    {

     

        var dbTypeFields =

        Enum.GetValues(typeof(DbType));

     

        foreach (DbType dbTypeField in dbTypeFields)

        {

            SqlParameter p = new SqlParameter();

             

            try

            {

                p.DbType = dbTypeField;

                Console.WriteLine("DbType." + dbTypeField.ToString() + " =  SqlDbType." + p.SqlDbType);

            }

            catch (Exception)

            {

                Console.WriteLine("// DbType." + dbTypeField.ToString() + " =  unknown");

            }

        }

     

    }

     

    [TestMethod]

    public void BuildSqlDbTypeToDbType()

    {

     

        var dbTypeFields =

        Enum.GetValues(typeof(SqlDbType));

     

        foreach (SqlDbType sqldbtype in dbTypeFields)

        {

            SqlParameter p = new SqlParameter();

     

            try

            {

                p.SqlDbType = sqldbtype;

                Console.WriteLine("SqlDbType." + sqldbtype + " =  DbType." + p.DbType);

            }

            catch (Exception)

            {

                Console.WriteLine("// SqlDbType." + sqldbtype.ToString() + " =  unknown");

            }

     

        }

     

    }

  • 相关阅读:
    第二章作业
    算法第五章作业及学期总结
    71 最大子列和问题 | 采用二分法+递归
    算法第一章作业
    算法第四章作业
    算法第三章作业
    Windows charles安装、配置及Android手机ca证书
    git出现fatal: Authentication failed for 'http:xxxx.git/''错误的解决办法
    如何用c#将十六进制转换成字符串?
    系统配置win7(64位),vs2010,没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  • 原文地址:https://www.cnblogs.com/68681395/p/3810638.html
Copyright © 2011-2022 走看看