【发布时间】:2014-11-05 22:00:51
【问题描述】:
这是我的代码隐藏的 sn-p:
SqlConnection connection2 = new SqlConnection(str2);
SqlCommand cmd2 = new SqlCommand();
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.CommandText = "" + MyRptSproc + "";
cmd2.Connection = connection2;
//Set up the parameters, if they exist
if (MyUseDates != "N")
{
cmd2.Parameters.Add("@StDate", SqlDbType.Date).Value = DateTime.Parse(txtStDate.Value);
cmd2.Parameters.Add("@EnDate", SqlDbType.Date).Value = DateTime.Parse(txtEnDate.Value);
}
if (MyPlatform != "N")
{
cmd2.Parameters.Add(new SqlParameter("@MyPlatform", cboPlatform.SelectedValue));
}
if (MyManager != "N")
{
cmd2.Parameters.Add(new SqlParameter("@MyManager", cboManager.SelectedValue));
}
if (MyAuditManager != "N")
{
cmd2.Parameters.Add(new SqlParameter("@MyAuditManager", cboAuditorManager.SelectedValue));
}
if (MySampleTitle != "N")
{
cmd2.Parameters.Add(new SqlParameter("@MySampleTitle", cboSampleTitle.SelectedValue));
}
if (MyAuditType != "N")
{
cmd2.Parameters.Add(new SqlParameter("@MyAuditType", cboAuditType.SelectedValue));
}
if (MyLocation != "N")
{
cmd2.Parameters.Add(new SqlParameter("@MyLocation", cboLocation.SelectedValue));
}
try
{
connection2.Open();
GridView_Reports.EmptyDataText = "No Records Found";
var adapter = new SqlDataAdapter(cmd2);
var ds = new DataSet();
adapter.Fill(ds, "MyTableName");
// Add this to a session variable so the datagrid won't get NULLed out on repost
Session["SSRptMenu"] = ds;
GridView_Reports.DataSource = ds;
GridView_Reports.DataBind();
所以我正在单步执行这段代码,然后进入
var adapter = new SqlDataAdapter(cmd2);
我突出显示“cmd2”,它告诉我它正在查看的服务器、命令文本是什么等...它还告诉我为这个特殊情况选择了 5 个参数。
我的问题是;我如何知道选择了哪些参数,以及它们的值是什么?我已经深入研究了几乎每个菜单项,但似乎找不到它。
【问题讨论】:
-
您已将它们添加到
Parameters。当你看那里时,你看到了什么? -
好吧,如何在代码顶部定义
SqlParameterCollection,如果您的条件为true,则添加它们,然后在最后检查您的集合? -
它说有 5 个,但我在它下面找不到任何菜单项说明这 5 个是什么。
-
@JohnnyBones:我希望它是
SqlParameterCollection类型,它可以展开以显示集合中的项目。也许你可以放一张你看到的截图而不是连接对象(或者如果你愿意的话)。
标签: c# code-behind