A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 包连靖 中级黑马   /  2012-4-16 16:21  /  2261 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 包连靖 于 2012-4-16 16:25 编辑

   using ( SqlConnection conn = new SqlConnection( @"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\chengshi.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open(); //连??接??数?y据Y库a,然??后??打???开a
                using (SqlCommand cmd = conn.CreateCommand()) //执??行D数?y据Y库a语??句?
                {
                    cmd.CommandText = "select * from promary" ;//选?择?所??有?D的??省??
                    using (SqlDataReader datereader = cmd.ExecuteReader()) //读??取??行D:定??义??datereader去???执??行D读??取??
                    {
                        while (datereader.Read())//循-环??-阅?读??每?一??行D语??句?
                        {
                            province items = new province(); //province类???的??实???例?y化??
                            //datereader来???执??行D获?取??string类???型??(从???proName这a个?里??面?获?取??)
                            items.name = datereader.GetString(datereader.GetOrdinal( "proName" ));
                            //同??理???
                            items.id = datereader.GetInt32(datereader.GetOrdinal( "proID" ));

                            cmbpro.Items.Add(items); //让??栏??里??面?输??出?items,不?过y一??开a始??改?成??了??name的??所??以??只?输??出?name

                        }
                    }
                }
            }
Form1_Load里面的




评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 包连靖 于 2012-4-16 16:26 编辑

      //关?键??地??方??,但??是??尚?D未??理???解a.
            province item = (province )cmbpro.SelectedItem;
            //proID指?向??item.id
            int proID = item.id;
            using (SqlConnection conn = new SqlConnection (@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\xiaocheng.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open(); //连??接??数?y据Y库a,然??后??打???开a
                using (SqlCommand cmd = conn.CreateCommand()) //执??行D数?y据Y库a语??句?
                {
                    cmd.CommandText = "select * from city where proID=@proID" ; //选?择?所??有?D的??市?D
                    cmd.Parameters.Add( new SqlParameter ( "proID", proID));
                    using (SqlDataReader datereader = cmd.ExecuteReader()) //读??取??行D:定??义??datereader去???执??行D读??取??
                    {
                        while (datereader.Read())//循-环??-阅?读??每?一??行D语??句?
                        {
                            //定??义??cityName变??量??,从???数?y据Y库a取??出?
                            string cityName = datereader.GetString(datereader.GetOrdinal( "cityName"));
                            //让??栏??目?里??面?添???加??cityName
                            cmbcity.Items.Add(cityName);
                        }


                    }
                }
            }

cmbcity_SelectedIndexChanged里面的



  class province //弄a个?省??的??类???
    {
        public string name { get; set ; }
        public int id { get; set ; }
回复 使用道具 举报
本帖最后由 包连靖 于 2012-4-16 16:30 编辑

为什么市的始终没法得到呢!
回复 使用道具 举报
你打个断点调试一下,看程序执行不执行。
回复 使用道具 举报
断点打到市里面,就卡住不进市的了..我基本照着视频做了.
回复 使用道具 举报
using (SqlConnection conn = new SqlConnection(@"Data Source=.\MSSQLSERVER2012;AttachDbFilename=E:\代码\我的第一个dmf\省市选择\SS.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open();
                using(SqlCommand cnd =conn.CreateCommand())
                {
                    cnd.CommandText = "select * from promary";
                    using (SqlDataReader datareader = cnd.ExecuteReader())
                    {
                        while (datareader.Read())
                        {
                            ProvinceTtem item = new ProvinceTtem();
                            item.Name = datareader.GetString(datareader.GetOrdinal("proName"));
                            item.Id = datareader.GetInt32(datareader.GetOrdinal("proID"));
                            cmb省.Items.Add(item);
                        }
                    }
                }
            }




private void cmb省_SelectedIndexChanged(object sender, EventArgs e)
        {

            ProvinceTtem item = (ProvinceTtem)cmb省.SelectedItem;
            //cmb省.SelectedItem 提取这个选项的内容 是object类型的    ProvinceTtem是一个类 也是一个类型
            // ProvinceTtem item = (ProvinceTtem)cmb省.SelectedItem; 是把object类型强制转换成ProvinceTtem类型

           /* object obj1 = item;
            ProvinceTtem p2 = obj1;//把p2指向obj1指向的对象
            ProvinceTtem p2 = (ProvinceTtem)obj1;*/

            int proID = item.Id;//获取对应省份的id



            using (SqlConnection conn = new SqlConnection(@"Data Source=.\MSSQLSERVER2012;AttachDbFilename=E:\代码\我的第一个dmf\省市选择\SS.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open();
                using (SqlCommand cnd = conn.CreateCommand())
                {
                    cnd.CommandText = "select * from city where proID=@proID";
                    cnd.Parameters.Add(new SqlParameter("proID", proID));

                    using (SqlDataReader datareader = cnd.ExecuteReader())
                    {
                        cmb市.Items.Clear();//把之前显示的内容清空  以免累积在一起

                        while (datareader.Read())
                        {
                           
                            string cityName = datareader.GetString(datareader.GetOrdinal("cityName"));

                            cmb市.Items.Add(cityName);
                           
                        }

                    }
                }
            }




class ProvinceTtem
    {
        public string  Name { get; set; }
        public int Id { get; set; }

    }

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
郑森 中级黑马 2012-4-16 20:14:51
7#
cmbcity_SelectedIndexChanged里面的,你写错了吧 !应该放到cmbpro_SelectedIndexChanged里面

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
郑森 发表于 2012-4-16 20:14
cmbcity_SelectedIndexChanged里面的,你写错了吧 !应该放到cmbpro_SelectedIndexChanged里面

...

呀!太感谢了..就是这里了.同样也很感谢上面几位同学的帮忙哒~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马