省市选择程序



 下午用了两个多小时才做出我的第一个ADO.net程序。
  
 1、首先是数据库的建立,给出的代码会引起中文乱码,所以就简单的改了一下
  first:将varchar(50)改成了nvarchar(50);
  second:将每个中文字符串前面加了一个N
 2、Winform程序的建立,很简单的界面
    DropDownStyle属性 改成了DropDownList
3、添加应用程序配置文件
 
     
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< configuration >
< connectionStrings >
< add name = " ConnStr " connectionString = " Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\PC.mdf;Integrated Security=True;User Instance=True; " />
</ connectionStrings >
</ configuration >
把连接数据库的部分放到这里面,在IP地址变动的时候就只需要改配置文件,不用改源程序了
4、代码
winform窗体里面的代码,configuration类在引用里面本来是没有的,必须要手动添加
这里面定义了一个类
  class ProvinceItem
        {
            public string name;
            public int id;
            public string Name
            {
                get
                {
                    return this.name;
                }
                set
                {
                    this.name = value;
                }
            }
            public int Id
            {
                get
                {
                    return this.id;
                }
                set
                {
                    this.id = value;
                }
            }
        }
因为版本是2005,就不能简写了
cb省.Items.Add(item); 这句里面其实添加的是一个item对象,而对象转换成string类型其实返回的是类名,因此对这部分需要改一下ComboBox的属性:将DisplayMember属性值改成Name
 
    
private void Form1_Load( object sender, EventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings[ " ConnStr " ].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr)) // 创建数据库连接
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand()) // 创建数据库交互
{
cmd.CommandText
= " select * from promary " ;
using (SqlDataReader datareader = cmd.ExecuteReader())
{
while (datareader.Read())
{
ProvinceItem item
= new ProvinceItem();
item.Id
= datareader.GetInt32(datareader.GetOrdinal( " proID " ));
item.Name
= datareader.GetString(datareader.GetOrdinal( " proName " ));
cb省.Items.Add(item);
}
}
}
}
}

 
    
private void cb省_SelectedIndexChanged( object sender, EventArgs e)
{
ProvinceItem item
= (ProvinceItem)cb省.SelectedItem;
int proID = item.id;
cb市.Items.Clear();
string connStr = ConfigurationManager.ConnectionStrings[ " ConnStr " ].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr)) // 创建数据库连接
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand()) // 创建数据库交互
{
cmd.CommandText
= " select * from city where proID=@proID " ;
cmd.Parameters.Add(
new SqlParameter( " proID " , proID));
using (SqlDataReader datareader = cmd.ExecuteReader())
{
while (datareader.Read())
{
string cityName = datareader.GetString(datareader.GetOrdinal( " cityName " ));
cb市.Items.Add(cityName);

}
}
}
}
}
然后是cb省部分的代码
这里面涉及到一个强制类型转换,将object类型转换成了ProvinceItem类型

转载于:https://www.cnblogs.com/mycolour/archive/2011/06/11/2078537.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值