【问题标题】:search item using sqlQuery C# ASP.NET and display in gridview使用 sqlQuery C# ASP.NET 搜索项目并在 gridview 中显示
【发布时间】:2015-10-13 10:26:52
【问题描述】:

我看不到网格视图中显示的任何数据。 看不到任何搜索结果。 我正在尝试使用 sqlparameter。 如您所见,我的 sqlQuery 是一个很长的查询。 如果我输入“卡片”,它应该会找到带有“大卡片”或“小卡片”值的 item_description。 这是我的代码:

searchWord = Request.Cookies["Search"].Value;
searchType = Request.Cookies["Display"].Value;
string sqlQuery;
string custSearch = searchWord;

DataTable dt = new DataTable();
SqlConnection sc = new SqlConnection(GetConnectionString());

sqlQuery = "SELECT Player.player_id AS 'ID', Player.fname AS 'First name', "
         +"Player.lname AS 'Last name', Player.sport AS 'Sports',"
         +"Player.position AS 'Position', Player.debut_year AS 'Debut year',"
         +"Player.prof_year AS 'Major year', Player.birth_date AS 'Date of birth'," 
         +"Player.birth_place AS 'Place of birth', Player.team_f AS 'Current team',"
         +"Player.team_s AS 'Past team1', Player.team_t AS 'Past team2',"
         +"Player.living AS 'Death status' " 
         +"FROM Player WHERE (Player.fname LIKE '@SearchPam') "
         +"OR (Player.lname LIKE '@SearchPam') OR (Player.sport LIKE '@SearchPam') "
         +"OR (Player.position LIKE '@SearchPam') OR (Player.team_f LIKE '@SearchPam') "
         +"OR (Player.team_s LIKE '@SearchPam') OR (Player.team_t LIKE '@SearchPam');";
try
{
     sc.Open();
     string result = sqlQuery;
     SqlCommand cmd = new SqlCommand(result, sc);
     cmd.Parameters.AddWithValue("@SearchPam", custSearch);
     SqlDataAdapter adapter = new SqlDataAdapter(cmd);
     DataSet ds = new DataSet();

     adapter.Fill(ds);

     GridView1.DataSource = ds;
     GridView1.DataBind();
}
catch{...}
finally{sc.Close();}

public string GetConnectionString()
{
    return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
}

【问题讨论】:

  • 你应该使用 ds.Tables[0] 而不是只使用 ds
  • 我认为您错过了 % 运算符。你的陈述应该是这样的LIKE '%@SearchPam%'
  • 我刚刚删除了DataSet ds = new DataSet();而现在我改用 DataTable dt = new DataTable();反而。 GridView1.DataSource = dt; GridView1.DataBind();
  • 你能在数据集中看到 QuickWatch 中的记录吗?
  • 如果您在 datasetdatatable 中没有获得任何值,那么问题出在您的查询中,请尝试在 SSMS 看看是否有任何结果也请关注@SankarRaj 评论。

标签: c# asp.net sql-server search gridview


【解决方案1】:

您可以使用以下任一查询,我认为您将获得预期的输出:

string sql = "SELECT * FROM TableA WHERE Col1 LIKE @SearchPam";
.
.
cmd.Parameters.AddWithValue("@SearchPam", "%" + txtSearch.Text + "%");

string sql = "SELECT * FROM TableA WHERE Col1 LIKE '%' + @SearchPam+ '%'";
.
.
cmd.Parameters.AddWithValue("@SearchPam", txtSearch.Text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多