SQL查询WHERE字符串LIKE字段
问题描述:
我想检索具有艺术家列的up_song表中的arist名称的记录, 和1.Lata Mangeshkar 2.Lata Mangeshkar,sunidhi chuhan 3.Mohit chuhan,Ashaji ,Lata Mangeshkar。SQL查询WHERE字符串LIKE字段
song.aspx
string lata = hlinklata.Text;
hlinklata.NavigateUrl = "DisplayList.aspx?name=" + lata;
Displylist.aspx
lblheader.Text = Request.QueryString["name"];
String sql = "SELECT title, song_id, movie_name, size FROM up_song WHERE artist LIKE '%"+ lblheader.Text +" %' ";
adpt = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
adpt.Fill(ds, "title");
var last6Uploaded = ds.Tables["title"].AsEnumerable().OrderByDescending(r => r.Field<int>("song_id"));
foreach (DataRow row in last6Uploaded)
{
int songID = row.Field<int>("song_id");
HyperLink hl = new HyperLink();
hl.ID = "hyperlink" + songID;
string title = row.Field<string>("title");
hl.Text = title;
hl.NavigateUrl = "Downloadpage.aspx?name=" + title;
hl.ForeColor = System.Drawing.Color.White;
Paneltitle.Controls.Add(hl);
Paneltitle.Controls.Add(new LiteralControl("<br>"));
}
答
我认为这个问题是,你必须在SQL插入的文本之后的额外空间。这意味着你每次都在有效地搜索“lblheader.text”(后面有一个空格),我怀疑是你想要的。
在SQL语句中,改变
LIKE '%"+ lblheader.Text +" %' ";
要
LIKE '%"+ lblheader.Text +"%' ";
在一个单独的问题
上面的代码是受到SQL注入是一个您的应用程序的主要安全问题。在这里阅读更多:http://en.wikipedia.org/wiki/SQL_injection
最新消息你的问题? – vijay 2013-03-03 08:34:56
问题是什么或者你得到的错误 – 2013-03-03 08:35:10
问题是什么?对我来说似乎很好...... – 2013-03-03 08:35:41