用断点检查编译器

时间:2010-04-18 14:47:31

标签: c#

当我试图专注于代码中的编译器时,我在代码上设置了断点。

if (!IsPostBack)
{
    using (SqlConnection Con = Connection.GetConnection())
    {
        if (Request.QueryString["Category_Id"] != null &&
            DDlProductFamily.SelectedIndex < 0)
        {
            SqlCommand Com = new SqlCommand("SelectAllCtageories_Front", Con);
            Com.CommandType = CommandType.StoredProcedure;
            Com.Parameters.Add(Parameter.NewInt(
                "@Category_Id", Request.QueryString["Category_Id"]));

            SqlDataAdapter DA = new SqlDataAdapter(Com);
            DA.Fill(dt);
            DataList1.DataSource = dt;
            DataList1.DataBind();
        }

但我无法查看条件,尽管我有查询字符串的值。

2 个答案:

答案 0 :(得分:0)

一旦断点被​​击中,您可以使用F10F11来逐步执行代码。

如果您想查看变量的值,则可以将鼠标悬停在变量或right-clickadd watchadd quick watch上。

如果您想检查条件是true还是false,那么选择整个条件右键单击并选择上述选项之一。

我不明白你的问题。但是你想要Sarah Ford's Blog

答案 1 :(得分:0)

我猜你在if (Request.QueryString["Category_Id"] != null && DDlProductFamily.SelectedIndex < 0)语句中的某处放置了一个断点,当你调试你的应用程序时,你的断点永远不会被击中。我是对的吗?

然后要检查一些事情。

  1. 确保您的解决方案设置为调试模式。这应该在标准的Visual Studio工具栏上,作为下拉列表。你可能已经这样做了,但确保没有坏处。

  2. 将断点放在if语句本身上,并将监视添加到这两个条件中。我的猜测是,如果如你所说,查询结果是一个非空值,那么这只能意味着DDlProductFamily.SelectedIndex < 0的计算结果为假。

  3. 实际上,确保IsPostBack也是正确的可能是值得的,以确保您实际输入此代码块。您可以在您感兴趣的每一行上粘贴断点,或者如TheMachineCharmer所示,您可以使用F10逐步执行每一行。

  4. 根据您问题中的有限信息,我最好的猜测是DDlProductFamily.SelectedIndex小于0,或IsPostBack为假。

    希望有所帮助!