1

我正在用 C# 制作一个 Windows 窗体。DataGridView我需要使用 where 子句将此网格视图绑定到数据库,并且其值将等于组合框选定项。

我做了这样的事情:

      private void combsalesid_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlCommand cmr = DataConnection.GetConnection().CreateCommand();
        cmr.CommandText = "select * from SalesOrder where SalesId = @salesis";
        cmr.Parameters.Add(new SqlParameter("@salesis", combsalesid.SelectedItem.ToString()));
        SqlDataAdapter da = new SqlDataAdapter(cmr);
        DataSet ds = new DataSet();
        da.Fill(ds);
        grdsalesorder.DataSource = ds;

        cmr.Dispose();
        DataConnection.CloseConnection();
    }

但它不起作用。

4

1 回答 1

0
  • 的价值是combsalesid.SelectedItem.ToString()多少?

    我猜combsalesid是绑定到 a Datatable,所以 Selecteditem.ToString()返回容器对象 (a System.Data.DataRowView)。

    如果是,您只需将inSelectedItem转换DataRowView为从该 DataRowView 中获取值。

    看看这篇文章, 列表框选择的项目给我“System.Data.DataRowView”,C# winforms。它指的是 ListBox 但它是同一个问题。

  • 然后,当您Dataset为. 另一种方法是传递as 数据源。DataGridvViewDataMemberDataTableDataTable

    grdsalesorder.DataSource = ds.Tables(0);  
    
于 2013-08-20T13:26:55.690 回答