2017-07-19 17 views
0

我正在使用VS和SQL Server。我有問題,查詢:如何將發票項目從一個DataGridView(發票)顯示到另一個DataGridView(Items)c#

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(); 

其他一切工作,我只是不能顯示發票憑證的產品項目。

在發票DataGridView上設置了當我單擊單元格以將發票的ID加載到TextBox(txt_Dokument)時,然後在列出具有相同發票ID的產品的查詢中重新使用它。

如果這是不夠的信息,請告訴我提供更多。目前我不能更具體地說明我的問題。

回答

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

您正在執行SELECT操作並調用ExecuteNonQuery() ...這是錯誤的原因,它只會返回受影響的行數,而不是您所期望的結果集。相反,你應該叫ExecuteReader()

cmd.ExecuteReader() 
+0

我嘗試使用ExecuteReader並沒有發生任何事情。我改變了我的代碼,現在我得到「對象引用未設置爲對象的實例」。當我點擊Inv_docDGV時,Inv_doc_ID顯示在txt中,之後我只想顯示帶有該ID的項目。 以下是其他代碼: 'conn.Open(); DataTable dt_Stavke = new DataTable(); da = new SqlDataAdapter(「select *」+「from ul_dok where dok_id_fk = @dok_id_fk」,conn); cmd.Parameters.AddWithValue(「@ dok_id_fk」,txt_Dokument.Text); da.Fill(dt_Stavke); da.SelectCommand.ExecuteReader(); dgv_stavke.DataSource = dt_Stavke; conn.Close();' – Manojlo

相關問題