【问题标题】:Adding multiple SQL queries to same Datagrid c# WPF将多个 SQL 查询添加到同一个 Datagrid c# WPF
【发布时间】:2017-06-06 21:03:16
【问题描述】:

所以...我有一个数据网格,我想用组合框中选择的药物详细信息填充它。每次单击按钮时,我想添加一个新行,其中包含从组合框中选择的新药物。我在按钮单击事件中运行以下方法。

private void FillSalesItemGrid()
        {

            using (SqlConnection con = new SqlConnection(conn))
            {

                con.Open();

                if (!string.IsNullOrEmpty(comboBox_select_Item.Text.ToString()))
                {
                    sqlBuilder.Append("SELECT * FROM Medication WHERE MedName = @medName");
                    cParameters.Add(new SqlParameter("@medName", comboBox_select_Item.Text.ToString()));
                }                

                SqlCommand cmd = new SqlCommand(sqlBuilder.ToString(), con);
                if (cParameters.Count != 0)
                {
                    cmd.Parameters.AddRange(cParameters.ToArray());
                }
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable("Medication");
                da.Fill(dt);

                dataGrid_saleItems.ItemsSource = dt.AsDataView();
                sqlBuilder.Clear();
                cParameters.Clear();



            }

此时它显示当前选择的组合框项目。每次单击按钮时,它都不会添加新的“结果”。我希望它能够像您在 POS 上打电话一样工作。任何帮助将不胜感激。

【问题讨论】:

    标签: c# wpf combobox datagrid


    【解决方案1】:

    而不是每次都必须创建一个新的 Datatable,然后用每个函数调用填充它(SqlDataAdapter.Fill 正是这样做的)。 这样您也只需设置一次 itemsource。

    第二种解决方案是检索当前的 itemsource,将其转换为 DataTable。 类似的东西: DataTable table = (dataGrid_saleItems.ItemsSource as DataRowView).toTable() 如果您继续使用您的代码,它也会填满它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多