今天就一个客户端的任务:1、把Excel文件转成特定格式插入到数据库中;2、查出该文件,并且导出Excel文件;3、如果插入数据错误,则把刚插入的数据删除掉。感觉比较简单,可是,墨迹了一天呀。。。。总结一下吧!

一、    mysql数据库的存储过程是在“函数”列表里的,并且向外传参数时可以参考下边的代码:

首先是连接字符串 stringConn=“server=192.168.1.1;User ID=XXXXX;Password=XXXXXXX;database=lms;Connection Reset=FALSE ;charset=utf8”

public static void ImportEpc_Insert(string UIDNum, string EPCNum, int IsDistribute, string DistrubuteMatch, out int isAlarm)
       {
           isAlarm = 0;
           string procedureName = "原始数据_数据加密_增加";
           MySqlParameter[] thisParms = new MySqlParameter[5];
           thisParms[0] = new MySql.Data.MySqlClient.MySqlParameter("@UIDNum", UIDNum);
           thisParms[1] = new MySql.Data.MySqlClient.MySqlParameter("@EPCNum", EPCNum);
           thisParms[2] = new MySql.Data.MySqlClient.MySqlParameter("@IsDistribute", IsDistribute);
           thisParms[3] = new MySql.Data.MySqlClient.MySqlParameter("@DistrubuteMatch", DistrubuteMatch);
           thisParms[4] = new MySql.Data.MySqlClient.MySqlParameter("@isAlarm", isAlarm);
           thisParms[4].Direction = ParameterDirection.Output;
           DataAccess.MySQL_ExecuteStoredProcedure(procedureName, ref thisParms);
           isAlarm=Convert.ToInt32(thisParms[4].Value);
       }

对应的存储过程代码为:

BEGIN
DECLARE countNum int DEFAULT 0;

SELECT count(*) into countNum from 原始数据_数据加密 where UID=UIDNum;
if countNum<=0
THEN insert into `原始数据_数据加密`(UID,MD5_EPC,是否分配,分配批次) VALUES(UIDNum,EPCNum,IsDistribute,DistrubuteMatch);
set isAlarm=0;

ELSE
  set isAlarm=1;
end IF;

END

参数列为:

IN `UIDNum` varchar(200),IN `EPCNum` varchar(200),IN `IsDistribute` int,IN `DistrubuteMatch` varchar(200),OUT `isAlarm` int

二、对于app.config文件,当项目是几层结构时,最上层的winform窗体对config文件初始化

/// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            new ApplicationConfig();//初始化配置文件
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new LMS_Import());
        }

三、最好都写参数的XML注释,这样不会发警告!累了!睡了!

c# 开发+MySql数据库的更多相关文章

  1. Java Web开发——MySQL数据库的安装与配置

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  2. C#开发MySQL数据库程序时需要注意的几点

    一:引用MySQL使用基于Parameter方式代码,总是提示:“Column '列名'cannot be null”解决 MySQL使用基于Parameter方式代码,总是提示:“Column '列 ...

  3. (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库

    场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL  ...

  4. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  5. PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

    PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...

  6. 微渠道发展 BAE交通运输平台和java呼声,微信mysql数据库开发实例 --图文开发教程

    持续更新 BAE java开展mysql数据库 图文教程 BAE java语言发展mysql源码下载: 目前微信的发展.BAE开展.java开展.mysql教程开发非常,的介绍基于BAE平台.java ...

  7. 原生Jdbc操作Mysql数据库开发步骤

    原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤:        1.导入数据库驱动包       ...

  8. MySQL 数据库开发的 36 条军规

    MySQL 数据库开发的 36 条军规 写在前面的话: 总是在灾难发生后,才想起容灾的重要性: 总是在吃过亏后,才记得曾经有人提醒过. (一)核心军规 (1)不在数据库做运算:cpu计算务必移至业务层 ...

  9. MySQL数据库开发规范知识点

    前言: 设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一. 约定优先于配置(Convention Over Configuration ...

随机推荐

  1. 如何有效的清理yum缓存

    如果遇到下面问题,请执行下面命令   yum clean all   #清除缓存

  2. python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。

    1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...

  3. MyBatis 使用 foreach 批量插入

    MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...

  4. stack栈、heap堆的说明图

    上面的两幅图是stm32系列的,但是基本原理可以通用的.

  5. Python DataFrame 按条件筛选数据

    原始数据如下. 比如我想查看id等于11396的数据. pdata1[pdata1['id']==11396] 查看时间time小于25320的数据. pdata1[pdata1['time']< ...

  6. RGB颜色查询

    RGB颜色速查表   #FFFFFF   #FFFFF0   #FFFFE0   #FFFF00   #FFFAFA   #FFFAF0   #FFFACD   #FFF8DC   #FFF68F   ...

  7. Log-Structured Merge Tree (LSM Tree)

    一种树,适合于写多读少的场景.主要是利用了延迟更新.批量写.顺序写磁盘(磁盘sequence access比random access快). 背景 回顾数据存储的两个“极端”发展方向 加快读:加索引( ...

  8. 关于指针与引用的差别——C++

    准备 https://zhuanlan.zhihu.com/p/27974028 开始 int   是int类型变量声明 int * 是int指针声明,指针其实就是地址变量,用来储存地址值的" ...

  9. UDF——在udf当中添加几个有意思的宏

    很多人的udf都不是自己写的,直接从网上复制粘贴的,编译的时候经常报错.我编写了下面这段示例代码: 我们使用小软件编译: https://www.cnblogs.com/liusuanyatong/p ...

  10. Oracle 11g的一些常用语句记录

    一.表空间 1.创建临时表空间: create temporary tablespace project_temp tempfile 'D:\Oracle\dataspace\project_temp ...