• Winform中用comboBox来选择显示Dataset中表格数据


        这是一次偷懒的尝试,因为每次都必须打开代码,调试才能看见数据,发现问题。也是借鉴了调试中查看dataset数据的模式,查看不同表格。经历一番研究,总算实现了想要的效果了,故作此一笔记。与人共享。

      界面

      想要的效果:

      

    代码:

    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.Collections;
    
    namespace FneGTAForApi
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
               // iniitem();
                
            }
            DataSet ds = new DataSet() ;//全局变量
            //初始化数据
            public void iniitem()
            {
               // initdata();
                //ArrayList mylist = new ArrayList();
                //mylist.Add(new DictionaryEntry("table1", "table1"));
                //mylist.Add(new DictionaryEntry("table2", "table2"));
                //cbtable.DataSource = mylist;
                //cbtable.DisplayMember = "Key";
                //cbtable.ValueMember = "Value";
                comboBox1.BeginUpdate();
                for (int i = 0; i < 1000; i++)
                {
                    comboBox1.Items.Add("Item 1" + i.ToString());
                }
                comboBox1.EndUpdate();
            }
    
            //初始化数据可以从数据库中取
            public DataSet initdata()
            {
                 ds = CreateHotelPriceDataSet();
    
                for (int i = 0; i <= 5;i++ )
                {
                    DataRow dr = ds.Tables["test"].NewRow();
                    dr["CityCode"] = "CityCode_" + i.ToString();
                    dr["HotelCode"] = "HotelCode_" + i.ToString();
                    dr["testHotelCode"] = "testHotelCode_" + i.ToString();
                    ds.Tables["test"].Rows.Add(dr);
                    DataRow dr2 = ds.Tables["testtest88"].NewRow();
                    dr2["CityCode"] = "2CityCode_" + i.ToString();
                    dr2["HotelCode"] = "2HotelCode_" + i.ToString();
                    dr2["testHotelCode"] = "2testHotelCode_" + i.ToString();
                    dr2["test"] = "2test_" + i.ToString();
                    ds.Tables["testtest88"].Rows.Add(dr2);
                 }
                 return ds;
            }
            public static DataSet CreateHotelPriceDataSet()
            {
                DataSet ds = new DataSet();
                DataTable dtHotelDetails = new DataTable("test");
                dtHotelDetails.Columns.Add("CityCode", typeof(String));
                dtHotelDetails.Columns.Add("HotelCode", typeof(String));
                dtHotelDetails.Columns.Add("testHotelCode", typeof(String));
                ds.Tables.Add(dtHotelDetails);
                DataTable RoomsInfo = new DataTable("testtest88");
                RoomsInfo.Columns.Add("CityCode", typeof(String));
                RoomsInfo.Columns.Add("HotelCode", typeof(String));
                RoomsInfo.Columns.Add("testHotelCode", typeof(String));
                RoomsInfo.Columns.Add("test", typeof(String));
              //  ds.Tables.Add(dtHotelDetails);
                ds.Tables.Add(RoomsInfo);
                return ds;
            }
    
        
    
            private void cbtable_SelectedValueChanged(object sender, EventArgs e)
            {
                //string select = cbtable.SelectedItem.ToString();
                //string select2 = cbtable.SelectedValue.ToString();
               // string select = cbtable.SelectedItem.ToString();
                string select2 = cbtable.Text;
                if (select2 != "System.Collections.DictionaryEntry")
                {               
                    dataGridView1.DataSource = ds.Tables[select2.ToString()].DefaultView; //ds.Tables["table1"].DefaultView;//ds.Tables['"'+select2+'"'].DefaultView;
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                int selectedIndex = comboBox1.SelectedIndex;
                Object selectedItem = comboBox1.SelectedItem;
               // Object selectvale = comboBox1.SelectedValue;
    
                MessageBox.Show("Selected Item Text: " + selectedItem.ToString() + "
    " +
                                "Index: " + selectedIndex.ToString());
            }
    
            //填充选择表
            private void button2_Click(object sender, EventArgs e)
            {
                cbtable.Items.Clear();
               ds = null;
                ds = initdata();
                cbtable.BeginUpdate();
                for (int i = 0; i < ds.Tables.Count; i++)
                {
                    cbtable.Items.Add(ds.Tables[i].TableName);
                }
                cbtable.EndUpdate();
                cbtable.SelectedIndex = 0;
            }
        }
    }

    总体来说实现了想要的效果。

  • 相关阅读:
    centos安装配置jdk
    java封装数据类型——Byte
    centos7安装mysql8
    centos安装redis
    centos源码安装nginx
    Linux查看系统及版本信息
    sqlyog无操作一段时间后重新操作会卡死问题
    mysql8中查询语句表别名不能使用 “of”
    一次腾讯云centos服务器被入侵的处理
    java封装数据类型——Long
  • 原文地址:https://www.cnblogs.com/annabook/p/4992372.html
Copyright © 2020-2023  润新知