zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#底层库--数据库类型与程序类型转换

c#数据库程序 -- 类型 底层 类型转换
2023-09-27 14:26:35 时间

系列文章

C#底层库–程序日志记录类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124187709

C#底层库–MySQLBuilder脚本构建类(select、insert、update、in、带条件的SQL自动生成)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129179216

C#底层库–MySQL数据库访问操作辅助类(推荐阅读)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126886379

C#底层库–XML配置参数读写辅助类(推荐阅读)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129175304

C#底层库–获取文件版本和MD5值
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

C#底层库–FilesHelper文件辅助类(删除目录文件、复制文件到指定目录)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126887161

C#底层库–操作Excel帮助类(读取、导出表格)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126887445

C#底层库–随机数生成器
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126888812

C#底层库–RegexHelper正则表达式辅助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/109745286

C#底层库–CSV和DataTable相互转换
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128804367

C#底层库–Image图片操作类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128805298

C#底层库–JSON帮助类_详细(序列化、反序列化、list、datatable)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128805705

C#底层库–cookie操作辅助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816347

C#底层库–Session操作辅助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128817096

C#底层库–Image图片操作类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128805298

C#底层库–数据库类型与程序类型转换类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128817610

C#底层库–StringExtension字符串扩展类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129520428


前言

本专栏为【底层库】,主要介绍编程过程中 通用函数。我们将这些通用固化的源码,进行重写、封装、拓展,再进行单元测试、集成测试、beta测试,最终形成通用化模板,这里我们称为“底层库”。

作为研发人员的你,并不需要花大量时间,研究“底层库”的含义,及“底层库”的实现方法。你只需要几行调用代码,就可以解决项目上碰到的难题。而底层库使用方法,本专栏均有详细介绍,也有项目应用场景。

底层库已实现功能:MySQL脚本构建器、MySQL数据库访问操作、参数配置文件读写、加解密算法、日志记录、HTTP通信、Socket通信、API前后端交互、邮件发送、文件操作、配置参数存储、Excel导入导出、CSV和DataTable转换、压缩解压、自动编号、Session操作等。

本专栏会持续更新,不断优化【底层库】,大家有任何问题,可以私信我。本专栏之间关联性较强(我会使用到某些底层库,某些文章可能忽略介绍),如果您对本专栏感兴趣,欢迎关注,我将带你用最简洁的代码,实现最复杂的功能。
在这里插入图片描述

一、底层库介绍

数据库类型与程序类型转换类。数据库数据类型与编程开发语言数据类型是不一样的,本类是在基础上做转换。

二、底层库源码

创建类DataTypeConverter,复制以下代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Geyc_Utils.DataBase
{
    /// <summary>
    /// 数据库类型到C#类型转换
    /// 创建人:gyc
    /// 使用过程中发现错误,请联系作者修改 https://blog.csdn.net/youcheng_ge。
    /// </summary>
    public static class ConvertDataType
    {
        /// <summary>
        /// SQL类型转Csharp类型
        /// </summary>
        /// <param name="sqlType"></param>
        /// <returns></returns>
        public static string SqlTypeToCsharpType(string sqlType)
        {
            string cType = string.Empty;
            switch (sqlType.Trim().ToLower())
            {
                //字符型
                case "char":
                case "varchar":
                case "nvarchar":
                case "text":
                case "longtext":
                case "utext":
                case "set":
                    cType = "string";
                    break;

                //整型
                case "int":
                case "decimal":
                    cType = "decimal";
                    break;
                case "smallint":
                case "bigint":
                case "mediumint":
                    cType = "int";
                    break;

                case "tinyint":
                    cType = "sbyte";
                    break;


                //长整型
                case "longblob":
                    cType = "long";
                    break;

                //浮点型
                case "float":
                    cType = "float";
                    break;

                case "money":
                    cType = "Decimal";
                    break;

                //双精度浮点型
                case "double":
                    cType = "double";
                    break;

                //布尔型
                case "binary":
                case "bit":
                case "bool":
                case "boolean":

                    cType = "bool";
                    break;


                //日期型
                case "date":
                case "datetime":
                case "time":
                case "timestamp":
                case "year":
                    cType = "DateTime";
                    break;

                //字节
                case "varbinary":
                case "image":
                case "blob":
                case "mediumblob":
                    cType = "byte[]";
                    break;

                //枚举
                case "enum":
                    cType = "enum";
                    break;

                default:
                    cType = "string";
                    break;
            }
            return cType;
        }
    }
}

三、调用方法

我放在了窗体页面,新增一个按钮,点击按钮时触发。

public static int GetIntValue(this int? v,int def)
{
    if (v.HasValue) return v.Value;
    return def;
}

三、项目案列