2013-03-03 108 views
-6

我想检索具有艺术家列的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>")); 
    } 
+1

最新消息你的问题? – vijay 2013-03-03 08:34:56

+0

问题是什么或者你得到的错误 – 2013-03-03 08:35:10

+0

问题是什么?对我来说似乎很好...... – 2013-03-03 08:35:41

回答

5

我认为这个问题是,你必须在SQL插入的文本之后的额外空间。这意味着你每次都在有效地搜索“lblheader.text”(后面有一个空格),我怀疑是你想要的。

在SQL语句中,改变

LIKE '%"+ lblheader.Text +" %' ";

LIKE '%"+ lblheader.Text +"%' ";

在一个单独的问题

上面的代码是受到SQL注入是一个您的应用程序的主要安全问题。在这里阅读更多:http://en.wikipedia.org/wiki/SQL_injection