一、 第一次写MysqlHelper,用来管理城市的数据库

二、MySQLHelper源代码

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Cater0718
{
public static class MySqlHelper
{
//定义一个连接字符串
//readonly修饰的变量,只能在初始化的时候赋值,或者在构造函数中赋值
//其它地方只能读取,不能修改字符串
private static readonly string constr = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString; //1、执行增(insert)、删(delete)、改(update)的方法
//cmd.ExecuteNonQuery()
public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
using (MySqlConnection con = new MySqlConnection(constr))
{
using (MySqlCommand cmd = new MySqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteNonQuery();
}
}
} //2、执行查询,返回单个结果的方法
//cmd.ExecuteSclar()
public static Object ExecuteSclar(string sql, params SqlParameter[] pms)
{
using (MySqlConnection con = new MySqlConnection(constr))
{
using (MySqlCommand cmd = new MySqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteScalar();
}
}
} //3、执行查询,返回多行多列结果的方法
//cmd.ExecuteReader()
public static MySqlDataReader ExecuteReader(string sql, params MySqlParameter[] pms)
{
MySqlConnection con = new MySqlConnection(constr);
using (MySqlCommand cmd = new MySqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
try
{
con.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch
{
con.Close();
con.Dispose();
throw;
}
}
}
}
}

三、定义的实例类

  1、省份

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Cater0718
{
public class zProvinces
{
public int id { get; set; }
public string provinceid { get; set; }
public string province { get; set; }
}
}

  2、城市

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Cater0718
{
public class zCity
{
public int id { get; set; }
public string cityid { get; set; }
public string city { get; set; }
public string provinceid { get; set; }
}
}

  3、地区

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Cater0718
{
public class zArea
{
public int id { get; set; }
public string areaid { get; set; }
public string area { get; set; }
public string cityid { get; set; }
}
}

四、最后用WinForm写的窗体

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace Cater0718
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedItem != null)
{
string provinceid = comboBox1.SelectedValue.ToString(); List<zCity> list = new List<zCity>();
string sql = "select * from cities where provinceid=@provinceid";
MySqlParameter p1 = new MySqlParameter("@provinceid",MySqlDbType.String) {Value=provinceid };
using (MySqlDataReader reader = MySqlHelper.ExecuteReader(sql,p1))
{
while (reader.Read())
{
zCity model1 = new zCity();
model1.id = reader.GetInt16();
model1.cityid = reader.GetString();
model1.city = reader.GetString();
model1.provinceid = reader.GetString(); list.Add(model1);
}
comboBox2.ValueMember = "cityid";
comboBox2.DisplayMember = "city";
comboBox2.DataSource = list;
}
}
} private void Form1_Load(object sender, EventArgs e)
{
LoadProvince();
} private void LoadProvince()
{
List<zProvinces> list = new List<zProvinces>();
string sql = "select * from provinces";
using (MySqlDataReader reader = MySqlHelper.ExecuteReader(sql))
{
while (reader.Read())
{
zProvinces model = new zProvinces();
model.id = reader.GetInt16();
model.provinceid = reader.GetString();
model.province = reader.GetString(); list.Add(model);
}
comboBox1.ValueMember = "provinceid";
comboBox1.DisplayMember = "province";
comboBox1.DataSource = list;
}
} private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox2.SelectedItem != null)
{
string cityid = comboBox2.SelectedValue.ToString(); List<zArea> list = new List<zArea>();
string sql = "select * from areas where cityid=@cityid";
MySqlParameter p1 = new MySqlParameter("@cityid", MySqlDbType.String) { Value = cityid };
using (MySqlDataReader reader = MySqlHelper.ExecuteReader(sql, p1))
{
while (reader.Read())
{
zArea model1 = new zArea();
model1.id = reader.GetInt16();
model1.areaid = reader.GetString();
model1.area = reader.GetString();
model1.cityid = reader.GetString(); list.Add(model1);
}
comboBox3.ValueMember = "areaid";
comboBox3.DisplayMember = "area";
comboBox3.DataSource = list;
}
}
}
}
}

四、APP.config的配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<connectionStrings>
<add name="sqlserver" connectionString="Data Source=localhost;Initial Catalog=zone;User ID=admin;Password=123456"/>
</connectionStrings>
</configuration>

第一次写的MySQLHelper的更多相关文章

  1. 第一次写博客Poj1044

    Date bugs Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3005   Accepted: 889 Descript ...

  2. 第一次写python爬虫

    花了4天终于把写完了把国内的几个漏洞平台爬完了,第一次写py,之前一直都在说学习,然后这周任务是把国内的漏洞信息爬取一下.花了1天学PY,剩下的1天一个.期间学习到了很多.总结如下: ======== ...

  3. Java第一次写的流布局图形界面,留个纪念

    package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() ...

  4. 第一次写博客,关于前端开发deMVC在js中的应用

    对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...

  5. HDU 2064 菜鸡第一次写博客

    果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...

  6. 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。

    今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...

  7. 第一次写Web API接口

    API是什么?只知道是网络接口,具体怎么写?不会!如何调用?不会!那怎么办? 第一次的经历~~ 需求:为其他项目提供一个接口 功能:为项目提供询盘信息和商家信息,格式为Json字符串 拿过来,就开始做 ...

  8. 第一次写python

    这是一个在BJDP上学习Coding Kata的时候用到的一个练习,原来打算用Java写的,但是一想正好是学习的好机会. 就用Python了.第一次,写的有些复杂. 这个题目是关于购买图书的打折信息的 ...

  9. 第一次写博客,就写如何向外行介绍自己做的是什么,那个我是做web的

    如果想外行问你是做什么的,改如何回答.和内行说java后台就可以了,但外行听不懂,我们该如何描述呢? 我的方法是:我做的是java web开发,不是内外的外,是个英文单词web,全名叫world wi ...

随机推荐

  1. [CSP-S模拟测试]:玩具(概率DP)

    题目描述 这个故事发生在很久以前,在$IcePrincess\text{_}1968$和$IcePrince\text{_}1968$都还在上幼儿园的时候. $IcePrince\text{_}196 ...

  2. maven入门问题解决

    记录入门使用maven的问题和解决方法: 一.用mvn clean compile编译报错/ 或者在IDE中编译时,Problem视图显示错误:无法从maven服务器或者私有服务器或者某个网站中中下载 ...

  3. 国内npm镜像使用方法

    npm全称Node Package Manager,是node.js的模块依赖管理工具.由于npm的源在国外,所以国内用户使用起来各种不方便.下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选 ...

  4. Linux shell - 按时间和文件大小排序显示文件(ll)

    在工作中有这样的情况,需要显示所有的文件,按照时间先后或者文件大小先后排序显示 命令:ls 1.按时间排序显示文件 test@> ll -rt 2.按文件大小排序显示文件(文件大小单位:k,M) ...

  5. nginx 入门 安装

    .yum解决编译nginx所需的依赖包,之后你的nginx就不会报错了 yum install gcc patch libffi-devel python-devel zlib-devel bzip2 ...

  6. 【转】mackbook wifi卡死未响应的问题

    原文:http://tieba.baidu.com/p/6140144143?traceid= 1. wifi未响应了,紧急处理法:打开活动监视器,搜索airportd,结束掉进程 2. 彻底解决办法 ...

  7. TreeSet 源码分析

    TreeSet 1)底层由 TreeMap 支持的 Set 接口实现,Set 中的元素按照自然顺序或指定的比较器排序. 创建实例 /** * 支持此 Set 的底层的 TreeMap 对象 */ pr ...

  8. day57——ajax之初体验

    转行学开发,代码100天——2018-05-12 今天是一个特别的日子——首先是母亲节,在此也祝福亲爱的妈妈健康长寿.其次今天是汶川大地震10周年,10年过去了,经历过苦难的人更加坚毅勇敢地面向未来! ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第5节 String类_9_练习:按指定格式拼接字符

    数组再加一个值

  10. 多线程threading初识二--多线程等待

    .join() :子线程等待主线程 下面程序运行流程: 主线程负责启动5个子线程,把每个线程放在threads list里,然后等待所有线程等待完毕后,再执行end_time = time.time( ...