选择顶行Asp.net

时间:2014-11-23 10:28:20

标签: c# asp.net c#-4.0

我制作了一个asp应用程序,允许用户在数据库中搜索记录。我通过允许用户在每次按下搜索按钮时仅搜索一行来改变这一点。但是我这样做的代码并没有真正起作用! 类产品:

   public DataTable SelectRow()
   {
  string sql = "SELECT TOP 1 * FROM Products ORDER BY ProductID ASEC";
  return SelectRow(sql);
   }
   public DataTable SelectRow(string Query)
   {
  try
  {
      return db.RunQuery(Query);
  }
  catch
  {
      return new DataTable();
  }

按钮搜索:

    protected void btnSearch_Click(object sender, EventArgs e)
     {
        grid.DataSource = product.SelectRow();
        DataBind();
        lblMsg.Text = "";
        btnRemove.Enabled = false;
        btnUpdate.Enabled = false;
        grid.SelectedIndex = -1;

        }

请您修改我的代码以允许我一次搜索一条记录。谢谢。

1 个答案:

答案 0 :(得分:1)

您的SQL无效,并且您的异常处理正在吞噬将向您显示的异常。

没有ASEC这样的东西 - 应该只是ASC

string sql = "SELECT TOP 1 * FROM Products ORDER BY ProductID ASC";

因为您有try 没有任何真实后果(非常糟糕的做法),例如重新抛出或某些日志记录,所以会吞下实际的异常。您正在运行catch块,该块返回空的DataTable

不要这样做。完全摆脱try阻止 - 让异常冒泡。如果您已经开始这样做,您几乎可以立即发现问题。

不要将异常处理用作流量控制机制 - 这是一种不好的做法。