从combobox中选择值后如何从Database绑定DataGridView

时间:2013-08-20 13:12:35

标签: winforms c#-4.0 datagridview combobox sqldataadapter

我在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();
    }

但它不起作用。

1 个答案:

答案 0 :(得分:0)

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

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

    如果是,您只需将SelectedItem转换为DataRowView 为了从这个DataRowView获取一个值。

    看一下这篇文章, listbox selected item give me " System.Data.DataRowView" , C# winforms。 它指的是ListBox,但它是同一个问题。

  • 然后,当您为Dataset分配DataGridvView作为数据源时,您还需要设置DataMember属性,该属性将是DataTable的名称。另一种方法是将DataTable作为数据源传递。

    grdsalesorder.DataSource = ds.Tables(0);