文档章节

用python从数据库生成c#代码

捍卫机密
 捍卫机密
发布于 2017/05/25 17:37
字数 445
阅读 23
收藏 0

懒惰的我要改变世界! 还有个题外话名言:寂寞驱动世界!----我

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by weilai on 2016/11/25


import pymysql


def format_db(formatter):
    conn = pymysql.connect(host='172.17.1.241', port=3306, user='root123', passwd='root123', db='businesssystemreport', charset='UTF8')
    cur = conn.cursor()
    cur.execute("SHOW FULL COLUMNS FROM businesssystemreport.productandcompanystatisday;")
    for i in cur:
        formatter(i)
    cur.close()
    conn.close()


def template1(field):
    code_temp = 'modelBase.AddUpdateFields("{field_name}", {obj}.{field_name});////{remark}'
    code_result = code_temp.format(obj='model', field_name=field[0], remark=field[8])
    print(code_result)


def template2(field):
    code_temp = 'modelBase.AddUpdateFields("{field_name}", {f_vaule});////{remark}'
    code_result = code_temp.format(obj='', field_name=field[0], remark=field[8], f_vaule='null')
    print(code_result)


def table_to_json(field):
    code_temp = '"{field_name}":"",'
    code_result = code_temp.format(field_name=field[0])
    print(code_result)


def format_field(field):
    # result.KeyID = dataReader["KeyID"] == DBNull.Value ? string.Empty : Convert.ToString(dataReader["KeyID"].ToString());
    code_temp = '{obj}.{name} = dr["{name}"] == DBNull.Value?{default}:Convert.{converter}(dr["{name}"].ToString());////{remark}'
    convert_default_value, convert_fun = value_convert(field[1])
    code_result = code_temp.format(obj = 'result', name=field[0], default = convert_default_value, converter = convert_fun, remark = field[8])
    print(code_result)


def table_to_model(field):
    # result.KeyID = dataReader["KeyID"] == DBNull.Value ? string.Empty : Convert.ToString(dataReader["KeyID"].ToString());
    code_temp = '/// <summary>\n/// {remark}\n/// </summary>\npublic {type} {name} {{ get; set; }} = {default};\n'
    convert_default_value, convert_fun = value_type(field[1])
    code_result = code_temp.format(obj = 'result', name=field[0], default = convert_default_value, type = convert_fun, remark = field[8])
    print(code_result)


def value_convert(ft):
    if len(ft) >= 3 and ft[0:3] == 'int':
        default_value = '0'
        convert_fun = 'ToInt32'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'varchar':
        default_value = 'string.Empty'
        convert_fun = 'ToString'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'char':
        default_value = 'string.Empty'
        convert_fun = 'ToString'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'tinyint':
        default_value = '0'
        convert_fun = 'ToInt32'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'date':
        default_value = 'new DateTime()'
        convert_fun = 'ToDateTime'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'decimal':
        default_value = '0.0m'
        convert_fun = 'ToDecimal'
        return default_value, convert_fun
    return '', ''


def value_type(ft):
    if len(ft) >= 3 and ft[0:3] == 'int':
        default_value = '0'
        convert_fun = 'int'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'varchar':
        default_value = 'string.Empty'
        convert_fun = 'string'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'char':
        default_value = 'string.Empty'
        convert_fun = 'string'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'tinyint':
        default_value = '0'
        convert_fun = 'int'
        return default_value, convert_fun
    if len(ft) >= 4 and ft[0:4] == 'date':
        default_value = 'new DateTime()'
        convert_fun = 'DateTime'
        return default_value, convert_fun
    if len(ft) >= 7 and ft[0:7] == 'decimal':
        default_value = '0.0m'
        convert_fun = 'decimal'
        return default_value, convert_fun
    return '', ''

format_db(table_to_model)

# format_db(table_to_json)

# format_db(template1)

# format_db(template2)

 

© 著作权归作者所有

共有 人打赏支持
捍卫机密
粉丝 5
博文 126
码字总数 48320
作品 0
成都
程序员
私信 提问
django实例:用创建你的第一个应用投票系统

https://docs.djangoproject.com/en/1.5/intro/tutorial03/ 投票应用的原文讲解的更加详细 当然主要是从django的帮助文档里面来的,权当是翻译吧 这个投票系统的主要功能有 1、一个前台页面,...

我的去哈哈
2014/02/14
0
0
Scut游戏服务器引擎6.2.7.0发布-修正BUG

Scut游戏服务器引擎6.2.7.0发布 1. 升级底层类库到.Net Framework 4.5.1版本 2. 增加Action=2与服务端Socket断开接口 3. 修改更新Python脚本时ReferenceLib.py文件被占用问题 Scut游戏服务器...

ScutGame
2014/04/06
2.1K
3
分布式 Key-Value 存储系统:Cassandra 入门

Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Google's BigTable 的数据结构和功能特点,采用 Memtable 和 ...

黄平俊
2010/07/16
2.8K
0
开源手机游戏服务器引擎 Scut 介绍

Scut游戏服务器引擎使用C#语言开发(基于Mono平台),特别适用于手机网络游戏,支持使用C#/Python脚本进行游戏开发;支持MSSQL/Mysql数据库;支持HTTP/Socket协议同时接入;采用实体类对象建...

ScutGame
2013/11/27
2
0
ScutSDK 0.95 版本发布

ScutSDK 简介: ScutSDK 是和 Scut 游戏服务器引擎,简化客户端开发的配套 SDK,她彻底打通了 Scut 开源游戏服务器引擎与客户端引擎(如Cocos2d-x/Quick-x/Unity3D)项目间的通信,进而实现整...

ScutGame
2013/12/24
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

tac 与cat

tac从后往前看文件,结合grep使用

writeademo
36分钟前
2
0
表单中readonly和dsabled的区别

这两种写法都会使显示出来的文本框不能输入文字, 但disabled会使文本框变灰,而且通过通过表单提交时,获取不到文本框中的value值(如果有的话), 而readonly只是使文本框不能输入,外观没...

少年已不再年少
57分钟前
2
0
SpringBoot上传图片操作

首先有个上传文件的工具类 /** * 文件上传 * @param file * @param filePath * @param fileName * @throws Exception */public static void uploadFile(byte[] file, String ...

_liucui_
今天
6
0
DrawerLayout

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener,OnFragmentInteractionListener{ public NavigationView navView; ......

安卓工程师王恒
今天
2
0
python精简笔记

python精简笔记-字符串基本用法 字符串常见用法: * encode() # 编码成bytes类型 * find() # 查找子串 * index() # 获取下标 * replace() # 替换子串 * len(string) # 返回字符串长度,...

平头哥-Enjoystudy
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部