【发布时间】: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 中的记录吗?
-
如果您在 dataset 或 datatable 中没有获得任何值,那么问题出在您的查询中,请尝试在 SSMS 看看是否有任何结果也请关注@SankarRaj 评论。
标签: c# asp.net sql-server search gridview