【问题标题】:Wpf combo box not being populate with sqlite data未使用 sqlite 数据填充 Wpf 组合框
【发布时间】:2016-01-09 12:36:46
【问题描述】:

我有 wpf 组合框,我正在尝试使用以下代码填充它。我在Attach a SQL database to ComboBox.ItemSource (WPF) 之后从另一个堆栈中找到了这些确切的代码。没有任何内容填充到组合框中。如果我根据 companyID 提供一些值,我还想知道我可以使用什么代码来设置选定的值。

        private void fillComboBox()
        {

            try
            {
                getCon getMyCon1 = new getCon();
                SQLiteConnection con = getMyCon1.GetConnection();
                SQLiteCommand sqlcmd = new SQLiteCommand();
                SQLiteDataAdapter sqladp = new SQLiteDataAdapter();
                DataSet ds = new DataSet();


                sqlcmd.Connection = con;
                sqlcmd.CommandType = CommandType.Text;
                sqlcmd.CommandText = "Select * from company";
                sqladp.SelectCommand = sqlcmd;
                sqladp.Fill(ds, "defaultTable");
                DataRow nRow = ds.Tables["defaultTable"].NewRow();
                nRow["companyName"] = "Select A Company";
                nRow["companyID"] = "-1";
                ds.Tables["defaultTable"].Rows.InsertAt(nRow, 0);
                companyName.DataContext = ds.Tables["defaultTable"].DefaultView;
                //
                companyName.DisplayMemberPath = ds.Tables["defaultTable"].Columns[0].ToString();
                companyName.SelectedValuePath = ds.Tables["defaultTable"].Columns[1].ToString();

            }
            catch (Exception expmsg)
            {

            }
            finally
            {
                //sqladp.Dispose();
                //sqlcmd.Dispose();
            }
   }

【问题讨论】:

    标签: c# wpf sqlite combobox


    【解决方案1】:

    设置ItemsSource of companyName,您现在只设置DataContext

    companyName.ItemsSource = ds.Tables["defaultTable"].DefaultView;

    【讨论】:

    • 嗨,Anjum,当我把你作为最后一行时,我现在得到了组合框中的项目列表。但它会输出所有的 id 值,例如-1, 1, 2,3 不是公司名称列。我想设置的另一件事是第一次选择为 -1 ?如何设置?
    • 您想在组合框中显示什么?您必须将该列名称设置为您的 DisplayMemberPath。
    • 我想将 companyName 显示为显示成员,并将值作为 companyID 添加到数据库中。
    • CompanyName对应的列设置为DisplayMemberPath。将 SelectedValueSelectedItem 绑定到 ViewModel 中的某个属性。如果您想使用SelectedValue,请将SelectedValuePath 设置为CompanyId col 名称。
    • 我已经更改了这些行 companyName.DisplayMemberPath = ds.Tables["defaultTable"].Columns["companyName"].ToString(); companyName.SelectedValuePath = ds.Tables["defaultTable"].Columns["companyID"].ToString();你能确认我做得对吗?还有另一件事我需要这个 companyName.DataContext 还是我可以删除它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2019-06-11
    • 2011-02-05
    相关资源
    最近更新 更多