我用的是vs08,做一个的简单小程序,在一个ComboBox控件中通过数据集显示sql数据库中一个表的数据,但是具体的实现过程我不清楚,我参考别的程序写了一个,但运行一直不显示数据,不知道哪地方错了?请各位帮忙看一下,谢了!!!
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;namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
           
            InitializeComponent();
            //DsAccBase为数据集文件
            dsBase = new DsAccBase();
            InitialAdapter();
            
        }
       
        private DsAccBase dsBase;
       //KM为数据库
        private DsAccBase.KMDataTable name;        private Test.DsAccBaseTableAdapters.KMTableAdapter adName;
        private Test.DsAccBaseTableAdapters.TableAdapterManager adapterBaseManager;
        private void Form1_Load(object sender, EventArgs e)
        {        }        private void FrmProductPrint_Shown(object sender, EventArgs e)
        {
            Application.DoEvents();
            InitialData();
            InititalDisplay();
      
            this.Enabled = true;
        }              private void InititalDisplay()
        {
            //cmName为ComboBox控件名称
            cbName.DataSource = name;
          //KM_KMBH、KM_DWBH为数据库两列名
            cbName.DisplayMember = "KM_KMBH";
            cbName.ValueMember = "KM_DWBH";
            cbName.SelectedIndex = 0;
                   }        private void InitialData()
        {
           
            name = GetName();
           
        }        private void InitialAdapter()
        {
            // DsAccBase
            adapterBaseManager = new Test.DsAccBaseTableAdapters.TableAdapterManager();
            adName = new Test.DsAccBaseTableAdapters.ZWKMWLTableAdapter();
            adapterBaseManager.ZWKMWLTableAdapter = adName;
        }
       
        public DsAccBase DsAccBase
        {
            get
            {
                FillDsBaseInfo();
                return dsBase;
            }
        }
        private void FillDsBaseInfo()
        {
                     
            adName.Fill(dsBase.KM);        }               public DsAccBase.KMDataTable GetName()
        {
            DsAccBase.KMLDataTable dt = new DsAccBase.ZWKMWLDataTable();
            dt = adapterBaseManager.KMTableAdapter.GetData();
            return dt;        }
    }
}

解决方案 »

  1.   

    一个Combox绑定数据库中某张表中的某个字段,你写的也忒麻烦点了吧
      

  2.   


      private void InititalDisplay()
      {
      //cmName为ComboBox控件名称
      cbName.DataSource = name;
      //KM_KMBH、KM_DWBH为数据库两列名
      cbName.DisplayMember = "KM_KMBH";
      cbName.ValueMember = "KM_DWBH";
      
      cbName.DataBind();//如果放在此处不行就放在cbName.SelectedIndex=0;这句话后面  cbName.SelectedIndex = 0;
        
      
      }
      

  3.   

    就是在InititalDisplay()方法中指定cbName的数据源后,绑定数据源cbName.DataBind();
    代码乱乱的 其他的没仔细看
      

  4.   

    cbName.DataSource = name;
      //KM_KMBH、KM_DWBH为数据库两列名
      cbName.DisplayMember = "KM_KMBH";
      cbName.ValueMember = "KM_DWBH";
      
      cbName.DataBind();//如
    这个就成了
      

  5.   


      private void FillDsBaseInfo()
      {
       
      adName.Fill(name);  }
      

  6.   

    你是数据取不到还是绑不到ComboBox上?
    绑定CombBox非常容易啊,就像上边说的,设置了ValueMember和DisplayMember就可以了。