【问题标题】:Searching Access Database by last name按姓氏搜索 Access 数据库
【发布时间】:2013-06-18 19:37:36
【问题描述】:

我无法让我的搜索按钮将我带到我在另一个 Web 表单上创建的网格视图。下面是我正在使用的代码,我尝试了 try/catch 代码,但它给了我错误。

这是我的代码,唯一的问题是当我输入姓氏并点击搜索时,页面什么也不做。它不会转到下一页并显示在gridview上。

OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=PayrollSystem_DB.mdb");
con.Open();
string strqrySearch = "SELECT * FROM tblPersonnel where LastName = @LastName";
OleDbCommand com = new OleDbCommand(strqrySearch, con);
com.Parameters.AddWithValue("strqrySearch", txtSearchName.Text.Trim());
OleDbDataReader dr = com.ExecuteReader();

string strFname = "";
string strPayrate = "";
string strStartdate = "";
string strEnddate = "";
while (dr.Read())
{
    strFname = dr["FirstName"].ToString();
    strPayrate = dr["PayRate"].ToString();
    strStartdate = dr["StartDate"].ToString();
    strEnddate = dr["EndDate"].ToString();
    Response.Redirect("frmViewPersonnel.aspx");
}

dr.Close();
con.Close();

【问题讨论】:

  • 这是因为您将 Response.Redirect 放在了 dr.Read() 循环中,并且 DataReader 中没有记录。如果您仍然希望将其重定向到下一页,则不要在 while 循环中编写 response.redirect。

标签: c# search webforms


【解决方案1】:

替换

com.Parameters.AddWithValue("strqrySearch", txtSearchName.Text.Trim());

通过这条线。

com.Parameters.AddWithValue("@LastName", txtSearchName.Text.Trim());

【讨论】:

  • 在 OleDB 中,参数的名称无关紧要。它按索引进行。
  • 我会使用回发网址重定向吗?我相信我必须不使用回发网址..所以我是否将重定向移动到另一个位置。谢谢sohail.hussain.dyn,我为什么要放@lastname
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多