ADO.NET学习笔记(四)

来源:互联网 发布:淘宝导航栏尺寸 编辑:程序博客网 时间:2024/06/12 22:50
(2)简单的利用CmboBox进行省市对应选择:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Configuration;namespace 省市选择{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        //声明静态字符串替代全局常字符串.........最好的方法是到App.cinfig里写连接字符串        //private const string CoonStr = @"Data Source = .\SQLEXPRESS;AttachDBFilename = |DataDirectory|\SS.mdf;Integrated Security = True;  User Instance =True";        private void Form1_Load(object sender, EventArgs e)        {            /*            Person p1 = new Person();            p1.Name = "tom";            p1.Age = 30;            //MessageBox.Show(p1.ToString());//一个类(Person)的对象默认的ToString()方法是打印这个类的类名即:省市选择.Person  (完整类名)            Person p2 = new Person();            p2.Name = "kkkk";            p2.Age = 20;            cmb省.Items.Add(p1);            cmb省.Items.Add(p2);            //设置CmboBox的DisplayMenber属性为Name,就会显示对象的Name属性的值            cmb省.Items.Add(p1);            cmb市.Items.Add(p2);            return;            */            //最终改为配置文件里引用最好,但是他的dll动态连接库没有自动引入,需要添加引用 System.configuration,并using进来才行,接下来用下面的语句引用,使用连接字符串的名字            //  使用顺序为:添加App.Config文件->添加->新建项->常规->应用程序配置文件->App.Config,其是.NET程序通用的配置文件,在ASP.NET也同样使用。            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 dateReader = cmd.ExecuteReader())                    {                        while (dateReader.Read())                        {                            ProvinceItem item = new ProvinceItem();                            item.ID = dateReader.GetInt32(dateReader.GetOrdinal("proID"));                            // item.Name = dateReader.GetString(dateReader.GetOrdinal("proName"));有时出错可能是敲错某个不起眼的字母或多出个空格,干脆重写一遍                            item.Name = dateReader.GetString(dateReader.GetOrdinal("proName"));                            cmb省.Items.Add(item);                        }                    }                }            }        }        private void cmb省_SelectedIndexChanged(object sender, EventArgs e)        {            ProvinceItem item = (ProvinceItem)cmb省.SelectedItem;            int ProID = item.ID;            //类型间可以相互转换,但是你看到的数据类型和实际的数据类型不一定相同,如下,object 是所有类型的基类,所以可以使obj指向item,如果实际是相同类型的但是还得转换才行,不然他不会自动转换,指针指认变量数据类型,不认实际对象            //object obj= item;            //ProvinceItem p2 = (ProvinceItem)obj;            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 dateReader = cmd.ExecuteReader())                    {                        cmd.CommandText = "";                        cmb市.Items.Clear();                        while (dateReader.Read())                        {                            string cityName = dateReader.GetString(dateReader.GetOrdinal("cityName"));                            cmb市.Items.Add(cityName);                            //ProvinceItem item = new ProvinceItem();                            //item.ID = dateReader.GetInt32(dateReader.GetOrdinal("proID"));                            //// item.Name = dateReader.GetString(dateReader.GetOrdinal("proName"));有时出错可能是敲错某个不起眼的字母或多出个空格,干脆重写一遍                            //item.Name = dateReader.GetString(dateReader.GetOrdinal("proName"));                            //cmb省.Items.Add(item);                        }                    }                }            }        }        class ProvinceItem        {            public string Name { get; set; }            public int ID { get; set; }            //public override string ToString()            //{            //    return Name;            //}        }        //自写的类必须在From类下面,并与public partial class Form1 : Form并列        /*           class Person        {            public int Age { get; set; }            public string Name            {                get;                set;            }                 //override是覆盖元原来的ToString()方法,相当于重构函数,ToString()方法返回什么,就显示什么            public override string ToString()            {                return Name;            }        }         */    }}

原创粉丝点击