如何将一个DataGridView(Invoice)中的发票项显示到另一个DataGridView(Items)c#

时间:2017-07-19 12:34:26

标签: c# sql-server visual-studio datagridview textbox

我正在使用VS和SQL Server。我的查询有问题:

SELECT * FROM dbo.ul_dok WHERE (dok_id_fk = @dok_id_fk)

当我在SQL Server中运行查询时,一切都运行良好,窗口弹出以询问dok_id_fk,我手动插入。

我已在c#中输入此代码:

conn.Open();

        cmd = new SqlCommand("select ul_dok_id, ul_dok_dat, dok_id_fk, fil_model_no_fk, kol_ul_dok " +
            " from ul_dok where dok_id_fk = @dok_id_fk", conn);
        cmd.Parameters.AddWithValue("@dok_id_fk", txt_Dokument.Text);
        cmd.ExecuteNonQuery();
        grb_Stavke_Dok.Show();

 conn.Close();

其他一切正常,我只是无法显示发票文件的产品项目。

在Invoice DataGridView上设置当我单击单元格以将发票的ID加载到TextBox(txt_Dokument),然后在列出具有相同发票ID的产品的查询中重复使用它。

如果这还不够,请告诉我提供更多信息。目前我无法更具体地解决我的问题。

2 个答案:

答案 0 :(得分:0)

您正在执行SELECT操作并致电ExecuteNonQuery() ......这是错误的原因,它只返回受影响的行数而不是您预期的结果集。相反,你应该像ExecuteReader()一样打电话给

cmd.ExecuteReader()

答案 1 :(得分:0)

这是我的问题的解决方案,这是代码。

private void DisplayData_Sa_istom_Sifrom()
    {

        conn.Open();
        DataTable dt_Stavke = new DataTable();
        da = new SqlDataAdapter("select ul_dok_dat as [Datum], fil_model_no_fk as [Oznaka filtera], kol_ul_dok as [Kolicina] " +
            " from ul_dok where dok_id_fk = @dok_id_fk", conn);
        da.SelectCommand.Parameters.AddWithValue("@dok_id_fk", txt_Dokument.Text);
        da.SelectCommand.ExecuteScalar();
        da.Fill(dt_Stavke);
        dgv_stavke.DataSource = dt_Stavke;

        conn.Close();
    }