分享

c#中如何将数据库中一个表的某列显示在组合框控件的下拉菜单中?

 小小243 2013-12-18
       使用for语句,遍历表的某一列,然后显示在组合框中!
2011-05-14 15:51 推荐: 0 次 有帮助? 请推荐
读数据库会吧,循环取,添加到下拉
2011-05-14 15:52 推荐: 0 次 有帮助? 请推荐
C# code
List<string> list=new List(); //循环遍历读取数据库将表中字段 //再添加到集合中 while(read.Read()) { list.Add(read["字段名"]); } return list; //再将数据源绑定就行了 this.cboText.DataSource=list;


2011-05-14 16:05 推荐: 0 次 有帮助? 请推荐
C# code
//读取时要转化 list.Add(read["字段名"].toString());
2011-05-14 16:06 推荐: 0 次 有帮助? 请推荐
2011-05-14 19:59 推荐: 0 次 有帮助? 请推荐
谢谢各位啊!还是不太会,代码能在具体点吗?我实在是基础太差了。假如我建的数据库名叫分销系统,它下面的一个表叫客户资料,表的列分别为:客户编码、客户名称、电话和地址。如何将此表中的列(客户名称)显示在一个窗体里的组合框控件的下拉列表中?
2011-05-14 20:35 推荐: 0 次 有帮助? 请推荐
C# code
IList<string> lists = new List<string>(); lists.Add("aaa"); lists.Add("bbb"); lists.Add("ccc"); this.comboBox1.DataSource = lists;
2011-05-14 20:41 推荐: 0 次 有帮助? 请推荐
C# code
IList<string> lists = new List<string>(); lists.Add("aaa"); lists.Add("bbb"); lists.Add("ccc"); foreach (var item in lists) { this.comboBox1.Items.Add(item); }
2011-05-14 20:42 推荐: 0 次 有帮助? 请推荐
using System.Data;
using System.Data.SqlClient;

C# code
public string connStr = "server=.;uid=用户名;pwd=密码;database=你的数据库名;"; private void Form5_Load(object sender, EventArgs e) { BindComboBox(); } private void BindComboBox() { string sql = "select 客户编码,客户名称,电话,地址 from 客户资料"; comboBox1.DataSource = getDT(sql); comboBox1.DisplayMember = "客户名称"; //选项显示内容 comboBox1.ValueMember = "客户编码"; //选项对应的value label1.Text = "总记录数:" + comboBox1.Items.Count; } private DataTable getDT(string sql) { DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(dt); } return dt; }
2011-05-14 21:16 推荐: 0 次 有帮助? 请推荐
先写SQL查询语句 select 列名(你想填充至combobox的列)from 表名
之后再去数据库读取
创建dataRead 对象 具体是哪个dataRead对象要看你用的是哪种数据库 此处我用MS的SQL server 2008
那就是创建一个sqldataRead 
C# code
SqldataRead read=cmd.ExecuteReader(); while(read.read()) { this.combobox.items.Add(read["列名"].ToString);//此处为用ADD方法直接往控件里添加内容, }
2011-05-14 21:35 推荐: 0 次 有帮助? 请推荐
更正:上贴中sqldataRead应改为SqldataReader ,在此道歉,手误!见谅!!
2011-05-14 21:38 推荐: 0 次 有帮助? 请推荐
回复于:2011-05-13 22:16:45
using System.Data;
using System.Data.SqlClient;

C# code

public string connStr = "server=.;uid=用户名;pwd=密码;database=你的数据库名;";

 private void Form5_Load(object sender, EventArgs e)
  {
  BindComboBox();
  }

private void BindComboBox()
  {
  string sql = "select 客户编码,客户名称,电话,地址 from 客户资料";
  comboBox1.DataSource = getDT(sql);
  comboBox1.DisplayMember = "客户名称"; //选项显示内容
  comboBox1.ValueMember = "客户编码"; //选项对应的value
  label1.Text = "总记录数:" + comboBox1.Items.Count;
  }

  private DataTable getDT(string sql)
  {
  DataTable dt = new DataTable();
  using (SqlConnection conn = new SqlConnection(connStr))
  {
  conn.Open();
  SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
  sda.Fill(dt);
  }
  return dt;
  }
9楼,太感谢你了,很详细。我试试。
2011-05-15 19:53 推荐: 0 次 有帮助? 请推荐
谢谢,各位高手的指点啊。我都试试,看可以不。
2011-05-15 19:54 推荐: 0 次 有帮助? 请推荐
9楼的大侠,把你发的那个代码中的public string connStr = "server=.;uid=用户名;pwd=密码;database=你的数据库名;";写成string connString = @"server=PC200032619QHN\EXPRESS;integrated security=true;DataBase=分销系统;";可以不?谢谢!
2011-05-17 16:22 推荐: 0 次 有帮助? 请推荐
应该不可以吧,我没这样写过。不过我知道你的意思。你可以这样写:
string connString=“Data Source=PC200032619QHN\EXPRESS; Initial Catalog=分销系统;Integrated Security=True"
2011-05-17 16:49 推荐: 0 次 有帮助? 请推荐
谢谢十五楼啊,我试试。
2011-05-17 19:18 推荐: 0 次 有帮助? 请推荐
还是不行,老在 conn.open()那个地方提示:在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
2011-05-17 19:23 推荐: 0 次 有帮助? 请推荐
用这种方式:public string connStr = "server=.;uid=用户名;pwd=密码;database=你的数据库名;";也是提示像上面那样的错误。我数据库里面该开的也都开了啊。还是不行。
2011-05-17 19:25 推荐: 0 次 有帮助? 请推荐
你的数据库之前可以吗?就是连接别的项目行不行,用windows身份验证登录的话正不正常
2011-05-17 20:54 推荐: 0 次 有帮助? 请推荐
也可用datagridview实现,就是不知道你解决了没有。。。
2011-05-17 21:01 推荐: 0 次 有帮助? 请推荐
从数据库查询实体类,返回DataSet ds ;
this.Combox1.DataSource = ds;
this.Combox1.DisplayMember = "列名";
2011-05-17 21:28 推荐: 0 次 有帮助? 请推荐
10楼:ProgramingCreazy
我按你的方法做了,调试时出现两个错误:
错误 1 找不到类型或命名空间名称“SqldataReader”(是否缺少 using 指令或程序集引用?)
错误 2 “System.Windows.Forms.ComboBox”不包含“items”的定义,并且找不到可接受类型为  
“System.Windows.Forms.ComboBox”的第一个参数的扩展方法“items”(是否缺少 using 指令或程序集引用?)
麻烦你指点一下是怎么回事?谢谢你啊!
我的代码是:
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;
namespace 组合框显示
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {
  string connString = @"server=PC201105219JN;uid=sa,pwd=123;database=fjf;";
  string sql = @"select 客户编码,客户名称 from 客户资料";
  SqlConnection conn = new SqlConnection(connString);
  SqlCommand cmd = new SqlCommand(sql, conn);
  SqldataReader read = cmd.ExecuteReader();
  while (read.read())
  {
  this.国家列表.items.Add(read["客户名称"].ToString);//此处为用ADD方法直接往控件里添加内容,
  }
  }
   
  }
}
2011-05-22 17:21 推荐: 0 次 有帮助? 请推荐
SqlDataReader read = cmd.ExecuteReader();
SqldataReader的data那个D要大写
this.国家列表.items.Add(read["客户名称"].ToString;
一样的问题items的i要大写
while (read.read())
一样read()的r也要大写
你都是硬打出来的么?
2011-05-23 00:32 推荐: 0 次 有帮助? 请推荐
还有你从头到尾都没打开过数据库
SqlCommand cmd = new SqlCommand(sql, conn);
下面加上
conn.Open();
2011-05-23 00:35 推荐: 0 次 有帮助? 请推荐
private void Form1_Load(object sender, EventArgs e)
  {
  string connString = @"server=PC201105219JN;uid=sa,pwd=123;database=fjf;";
  string sql = @"select 客户编码,客户名称 from 客户资料";
  SqlConnection conn = new SqlConnection(connString);
  conn.Open();
  SqlCommand cmd = new SqlCommand(sql, conn);
  SqlDataReader read = cmd.ExecuteReader();
  while (read.Read())
  {
  this.国家列表.Items.Add(read["客户名称"].ToString);//此处为用ADD方法直接往控件里添加内容,
  }
  read.Close();
  conn.Close();
  }
2011-05-23 00:39 推荐: 0 次 有帮助? 请推荐
谢谢25楼啊,我刚学,编程基础也差,见笑了。呵呵。。。
2011-05-24 08:16 推荐: 0 次 有帮助? 请推荐

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多