一、 第一次写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. HDU 4277 USACO ORZ(DFS暴搜+set去重)

    原题代号:HDU 4277 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4277 原题描述: USACO ORZ Time Limit: 5000/1 ...

  2. elasticsearch堆内存的配置建议

    1.将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等 防止内存抖动 2:给多大的堆内存? 给ES的内存配置不是越大越好,建议不能超过32GB,不同jdk版本最大边界值是不同的,对于32位小于 ...

  3. 一台电脑多个git使用 push 时候出现denied

    http://my.oschina.net/silentboy/blog/220158 当一台电脑上多个git account 的时候, 出现如下问题, $ git push origin maste ...

  4. onload in JavaScript

    https://www.w3schools.com/tags/ev_onload.asp Example Execute a JavaScript immediately after a page h ...

  5. linux 下spyder安装

    linux  下spyder安装: 安装qt4,python3 对应qt5 sudo apt-get install libxext6 libxext-dev libqt4-dev libqt4-gu ...

  6. 关于linux中移动目录和到指定目录和移动目录中的数据到指定目录

    #这里表示将目录node-v12.13.1-linux-x64移动到/usr/local/中重命名为node,所以node目录可以不存在[root@alone ~]# mv node-v12.13.1 ...

  7. 在mpvue或者Vue中使用VUEX

    第一个页面Index,主页哦 import Vue from'vue' import Vuex from'vuex' import getters from'./getters' import sta ...

  8. 网页禁用表单的自动完成功能禁用密码自动填充autocomplete

    网页中表单的自动完成功能,有时候很方便,但是有时候并不想让浏览器记忆表单,比如禁用密码域自动填充功能, 网页禁用表单的自动完成功能是由input元素的autocomplete属性控制,关闭表单的自动完 ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第4节 System类_3_System类的常用方法

    复制数组

  10. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_08 Map集合_2_Map常用子类

    常用的实现类HashMap 它的子类.LinkedHaspMap