【发布时间】:2020-05-22 07:24:21
【问题描述】:
感谢您抽出宝贵时间阅读本文。基本上我要做的是返回通过存储过程从数据库中提取的 [问题] 的详细信息
有 2 个参数,[IssueNo] 和 [LineNo]。当我单击一个按钮时,程序需要返回详细信息,例如:我选择的每个 DataGridRow 的 ItemName、Code 等,但它当前所做的是返回 LAST [Issues] 详细信息,而不是我在网格中选择的详细信息。
我知道我的存储过程是正确的,但是在我的 C# 代码中的某个地方,参数没有得到我选择的每一行的值。只有一个,它仍然是错误的
foreach (DataRow dr in dataGridView2.SelectedRows)
{
IssueNo = Convert.ToInt32(dr[0].ToString());
TranLineNo = Convert.ToInt32(dr[1].ToString());
}
detailsCmd.Parameters.AddWithValue("IssueNo", IssueNo);
detailsCmd.Parameters.AddWithValue("TranLineNo", TranLineNo);
DetailsIssue details1 = new DetailsIssue();
SqlDataAdapter Idetails = new SqlDataAdapter(detailsCmd);
Idetails.Fill(detailsReturned);
details1.dgvIssuesDetail.DataSource = detailsReturned;
details1.Show();
这是查找存储过程参数的代码。
https://prnt.sc/qybxvs 这是应用程序的外观,红色是选定的行,单击后单击的详细信息按钮会将黑色的 IssueNo 和 TranLineNo 传递给存储过程,然后返回问题的详细信息选择。它返回正确的数据想法,但针对错误的问题。如果我选择多行,它仍然只返回一个
如果您需要任何其他附加信息,请随时询问。我耐心等待您的回复
【问题讨论】:
-
首先你传递的不是“@”,这是无效的。请使用 detailsCmd.Parameters.AddWithValue("@IssueNo", IssueNo);其次,您的提及链接不起作用“prnt.sc/qybxvs”
-
@MashhadSaleem 我在没有'@' 的情况下通过的速度没有区别,我可能没有 7 年的经验,正如你的个人资料中所说的,但我的代码没有问题,因为我确实得到了它可以按照我希望的方式工作,参考链接也可以工作,我只是再次检查了它,但不再需要它。感谢您的宝贵时间
标签: c# asp.net .net sql-server stored-procedures