从数据库填充组合框

2024-01-09

我的组合框出现错误

My code:

SqlConnection conn = new SqlConnection();
try
{
    conn = new SqlConnection(@"Data Source=SHARKAWY;Initial Catalog=Booking;Persist Security Info=True;User ID=sa;Password=123456");
    string query = "select FleetName, FleetID from fleets";
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.CommandText = query;
    conn.Open();
    SqlDataReader drd = cmd.ExecuteReader();
    while (drd.Read())
    {
         cmbTripName.Items.Add(drd["FleetName"].ToString());
         cmbTripName.ValueMember = drd["FleetID"].ToString();
         cmbTripName.DisplayMember = drd["FleetName"].ToString();
    }
}
catch
{
     MessageBox.Show("Error ");
}

数据显示在组合框中,但是当您改变选择值成员,显示成员不会改变。

它现在正在工作,但是当我单击按钮显示数据时

private void button1_Click(object sender, EventArgs e)
{
    label1.Text = cmbTripName.DisplayMember;
    label2.Text = cmbTripName.ValueMember;
}

显示如下:

舰队名称
FleetID

不显示该值


您将必须完全重写您的代码。显示成员 http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.displaymember.aspx and 超值会员 http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.valuemember.aspx指向列名!此外,你真的应该使用using block- 所以连接得到disposed (and closed) 查询执行后。

而不是使用数据读取器访问我选择的值数据表并将其作为数据源绑定到组合框上。

using (SqlConnection conn = new SqlConnection(@"Data Source=SHARKAWY;Initial Catalog=Booking;Persist Security Info=True;User ID=sa;Password=123456"))
{
    try
    {
        string query = "select FleetName, FleetID from fleets";
        SqlDataAdapter da = new SqlDataAdapter(query, conn);
        conn.Open();
        DataSet ds = new DataSet();
        da.Fill(ds, "Fleet");
        cmbTripName.DisplayMember =  "FleetName";
        cmbTripName.ValueMember = "FleetID";
        cmbTripName.DataSource = ds.Tables["Fleet"];
    }
    catch (Exception ex)
    {
        // write exception info to log or anything else
        MessageBox.Show("Error occured!");
    }               
}

Using a 数据表可能是一个慢一点 than a 数据读取器 but I 不必创建我自己的类。如果你真的必须/想要利用一个数据读取器你可以选择@Nattrass方法。无论如何你应该写一个使用块 http://msdn.microsoft.com/de-de/library/yh598w02%28v=vs.80%29.aspx!

EDIT

如果您想获取组合框的当前值,请尝试此操作

private void cmbTripName_SelectedIndexChanged(object sender, EventArgs e)
{
    if (cmbTripName.SelectedItem != null)
    {
        DataRowView drv = cmbTripName.SelectedItem as DataRowView;

        Debug.WriteLine("Item: " + drv.Row["FleetName"].ToString());
        Debug.WriteLine("Value: " + drv.Row["FleetID"].ToString());
        Debug.WriteLine("Value: " + cmbTripName.SelectedValue.ToString());
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据库填充组合框 的相关文章

随机推荐

  • Android - 如何在 ListView 或 ExpandableListView 中设置 TextView 的填充

    我需要设置填充TextView在每一行ListView or ExpandableListView 我尝试使用android padding和孩子 paddingLeft 但没有任何结果 我能怎么做 谢谢 EDIT 这是该项目的代码Expa
  • 对象无效作为 React 子反应错误?

    你能告诉我为什么我收到这个错误吗 对象作为 React 子对象无效 发现 带有键的对象 seo val text val 如果你想渲染一组孩子 使用数组代替 我正在尝试击中http请求并尝试制作下拉菜单 import React from
  • 如果a>=b 那么O(a+b)=O(a)?

    我试图更好地理解这个想法O n 所以我对此感到好奇 如果我们知道 a gt b 那么O a b O a 我知道O a O a O 2a O a 但我想知道对于比 a 小的东西是否正确 我的意思是 如果O a b O a 我认为这是真的 因为
  • 使用 Perl 从文件中读取部分

    我正在尝试从 Perl 中的输入文件读取值 输入文件如下所示 1 sampledata1 This is a sample test and data for this continues 2 sampledata2 This is sam
  • 如果我在商业网页中添加微软雅黑粗体字体,是否会与微软产生版权问题? (使用CSS3)

    如果我添加以下内容 我会遇到 Microsoft 的版权问题吗 font face我的商业网页中的 CSS3 属性 字体为 Microsoft YaHei Bold Windows Vista 的 Cleartype 中文字体 看来还是小心
  • Orange() 与 range() 和 xrange() 有什么不同?

    当我遇到这个时 我正在浏览 Python Generators Wiki范围发生器 https wiki python org moin RangeGenerator谈论的页面irange 这将使我们能够对大范围的数字进行迭代 而无需 求助
  • JavaScript 有元组吗?

    我很想知道 JavaScript 中是否有 python 类型元组 我正在开发一个项目 我需要只使用对象列表而不是数组 JavaScript 不支持元组数据类型 但在数组解构的帮助下 可以像元组一样使用数组 有了它 数组可用于从函数返回多个
  • 中继器内的 ASP.NET DataGrid

    我有一个有两列的表 CommunityID PersonID 和一个 人员 表 其中包含 除其他外 FirstName LastName 我想为每个社区显示不同的数据网格 每个数据网格仅包含属于该社区的人员 我想在不使用 4 个单独的 Sq
  • Android 打电话时播放声音

    我想在有人接到电话时播放 Android 手机上的音乐 我可以播放音乐 但对方听不到该音乐 如何让对方听音乐 应该怎样编码才能将音乐播放插入麦克风让对方听到 我收到了关于此功能的不同建议 检查这里是可能的 http forums whirl
  • 芹菜失去心跳(on_node_lost)

    我刚刚升级到 celery 3 1 现在我在我的日志中看到了这个 on node lost INFO missed heartbeat from celery queue name for every queue worker in my
  • jsonconvert.deserializeobject 返回 null

    当用户输入城市和街道等地址的 2 个值 目前 时 我试图从谷歌地图获取坐标 来自谷歌地图 api 的 Json 字符串的反序列化遇到问题 必须非常简单 请帮助我关于我所缺少的 这是 json 字符串 http pasted co d9e7c
  • 如何在 Markdown 中为 Pandoc Beamer 幻灯片指定 YAML 元数据?

    我正在尝试使用 YAML 元数据块来指定 Pandoc 的 Markdown 文档中的一些文档属性 我将其转换为 LaTeX Beamer 我在这里阅读了描述 http johnmacfarlane net pandoc README ht
  • 使用 TableAdapter 重新加载数据

    private void UserList Load object sender EventArgs e TODO This line of code loads data into the workOrdersDataSet users
  • 使用 ES6 import 语句时,有没有办法防止项目未定义?

    import foobar1 foobar2 foobor3 typo this key doesn t exist in the module from module file js console log foobar1 foobar2
  • PHP preg_match_all 在长字符串上失败

    这是我的代码 long str repeat a very long string text 100 try changing 100 to 5000 str lt lt
  • 为什么我的汇编输出位于字母位置? (1+1=b)

    我正在使用塔斯姆 这是一个简单的程序 可以读取用户的输入并将两个数字相加 但是 我的输出是根据字母位置显示字母 例如 3 5 h 8 我希望它以整数显示 model small stack 100h data input db 13 10
  • 如何在 Apache 中集成 Clojure Web 应用程序

    Note 鉴于这个OP是大约两年前写的 我不想再问同样的问题 我想知道是否存在分步说明 以便我可以将Noir或其他Clojure Web应用程序集成到Apache中 无论是Jetty Tomcat 或者是其他东西 Django 也有类似的说
  • angular2快速启动仅显示正在加载..而不显示index.html的内容

    第一次使用 angular2 按照以下说明5 分钟快速入门指南 https angular io docs ts latest quickstart html 对于角度 2 一切正常 意味着运行时没有错误npm start npm 启动镜像
  • 在windows中用纯C创建唯一的临时目录

    我想从一些 C 在 Windows 中创建一个唯一的临时目录 代码 不是 C 或 C 我想这样做 以便我可以放置一些温度 目录中的文件 然后在完成后轻松将它们全部删除 通过递归删除目录 我本质上是在寻找与linux相当的东西mkdtemp
  • 从数据库填充组合框

    我的组合框出现错误 My code SqlConnection conn new SqlConnection try conn new SqlConnection Data Source SHARKAWY Initial Catalog B