我制作了一个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;
}
请您修改我的代码以允许我一次搜索一条记录。谢谢。
答案 0 :(得分:1)
您的SQL无效,并且您的异常处理正在吞噬将向您显示的异常。
没有ASEC
这样的东西 - 应该只是ASC
:
string sql = "SELECT TOP 1 * FROM Products ORDER BY ProductID ASC";
因为您有try
没有任何真实后果(非常糟糕的做法),例如重新抛出或某些日志记录,所以会吞下实际的异常。您正在运行catch块,该块返回空的DataTable
。
try
阻止 - 让异常冒泡。如果您已经开始这样做,您几乎可以立即发现问题。
不要将异常处理用作流量控制机制 - 这是一种不好的做法。