ListBox与数据库 省市选择程序
来源:互联网 发布:php项目开发视频 编辑:程序博客网 时间:2024/05/27 09:46
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;
namespace 练习
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
//使用内嵌mdf文件是必须要加的一段代码
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
//这段代码一直到这里
InitializeComponent();
}
//在windows窗口加载时,在lbPro显示省份
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
//使用内嵌mdf文件是必须要加的一段代码
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
//这段代码一直到这里
InitializeComponent();
}
//在windows窗口加载时,在lbPro显示省份
private void Window_Loaded(object sender, RoutedEventArgs e)
{
using (SqlConnection conn = new SqlConnection(
@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;user Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Pro";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
item proitem = new item();//因为语句lbPro.Items.Add(proitem)添加的是对象,所以,应声明与数据库中数据相对应的类,并声明该类的实例来承接数据库中的数据,并将该实例加到列表中去
proitem.Proname = reader.GetString(reader.GetOrdinal("proName"));
proitem.Proid = reader.GetInt32(reader.GetOrdinal("ID"));
lbPro.Items.Add(proitem);//通过lbPro的items.add方法来添加列表的显示对象。但是如果只是这么添加,那么列表只会显示该对象的所属的类 比如该对象就是 练习.mainwindow+item 。解决办法是将lbPro的 displaymemeberpath属性设置为选项对象要显示的属性,在这里应该设置为Proname
}
}
}
}
//单击选择listbox所显示的省的名称时发生selectionchanged
{
using (SqlConnection conn = new SqlConnection(
@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;user Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Pro";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
item proitem = new item();//因为语句lbPro.Items.Add(proitem)添加的是对象,所以,应声明与数据库中数据相对应的类,并声明该类的实例来承接数据库中的数据,并将该实例加到列表中去
proitem.Proname = reader.GetString(reader.GetOrdinal("proName"));
proitem.Proid = reader.GetInt32(reader.GetOrdinal("ID"));
lbPro.Items.Add(proitem);//通过lbPro的items.add方法来添加列表的显示对象。但是如果只是这么添加,那么列表只会显示该对象的所属的类 比如该对象就是 练习.mainwindow+item 。解决办法是将lbPro的 displaymemeberpath属性设置为选项对象要显示的属性,在这里应该设置为Proname
}
}
}
}
//单击选择listbox所显示的省的名称时发生selectionchanged
private void lbPro_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
item selecteditem = (item)lbPro.SelectedItem;
int i = selecteditem.Proid;
using (SqlConnection conn = new SqlConnection(
@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;user Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_City where proId=@i";
cmd.Parameters.Add(new SqlParameter("i",i));
SqlDataReader reader = cmd.ExecuteReader();
lbCity.Items.Clear();//随着在省份列表中点击,市列表一直在累加,所以应该在城市的列表中去掉上一次点击的省对应的城市
while(reader.Read())
{
string cityname = reader.GetString(reader.GetOrdinal("cityName"));
lbCity.Items.Add(cityname);
}
}
}
{
item selecteditem = (item)lbPro.SelectedItem;
int i = selecteditem.Proid;
using (SqlConnection conn = new SqlConnection(
@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;user Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_City where proId=@i";
cmd.Parameters.Add(new SqlParameter("i",i));
SqlDataReader reader = cmd.ExecuteReader();
lbCity.Items.Clear();//随着在省份列表中点击,市列表一直在累加,所以应该在城市的列表中去掉上一次点击的省对应的城市
while(reader.Read())
{
string cityname = reader.GetString(reader.GetOrdinal("cityName"));
lbCity.Items.Add(cityname);
}
}
}
}
// 用来承接数据中数据的类
// 用来承接数据中数据的类
public class item
{
string proname;
{
string proname;
public string Proname
{
get { return proname; }
set { proname = value; }
}
int proid;
{
get { return proname; }
set { proname = value; }
}
int proid;
public int Proid
{
get { return proid; }
set { proid = value; }
}
}
数据库中的表格格式为:
T_Pro表: ID , proName
T_City表: cityName , proId
{
get { return proid; }
set { proid = value; }
}
}
数据库中的表格格式为:
T_Pro表: ID , proName
T_City表: cityName , proId
0 0
- ListBox与数据库 省市选择程序
- 黑马程序员之ADO.NET学习笔记:省市选择程序,数据全部来自于数据库。
- 微信小程序选择省市地址代码分享
- 省市选择数据库SQL Server语句
- 省市选择
- 省市数据库
- 省市数据库
- 省市数据库
- C#省市县三级联动(listbox)
- 中国省市选择列表
- 省市选择_js封装
- 省市选择源码
- js简单省市选择
- jS省市选择
- UIPickerView选择省市
- jQuery--1省市选择
- 省市联动选择
- 【JQuery】- 省市选择
- IOS开发系列--C语言之指针
- storm消息的可靠处理和容错
- IOS新浪微博开发--分享、授权登录
- POJ 1797 Heavy Transportation(Dijkstra变形) 解题报告
- 交流友情链接的原则
- ListBox与数据库 省市选择程序
- nyoj-字和串之差
- 1049. Counting Ones
- POJ1887 Testing the CATCHER
- UVa10118 - Free Candies
- VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
- 线程同步与锁
- POJ1740 A New Stone Game
- 网购倒计时效果代码