我正在使用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的产品的查询中重复使用它。
如果这还不够,请告诉我提供更多信息。目前我无法更具体地解决我的问题。
答案 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();
}