I use vs2010 and ms sql with (linq to sql) SP to pass p1 p2 p3 and retrieve selected data to repeater The problem is the repeater ignore p1,p2,p3 and just display all data in the movie table I have 3 tables : (Movie , Director, Movie-director)
ALTER PROCEDURE [dbo].[SelectMovie]
@P1 int ,
@P2 NVARCHAR(255) = NULL,
@P3 NVARCHAR(255) = NULL
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT Movie.Movie_ID
,Movie.title
,Movie.IMAGE
,Movie.actors
,Movie.description
,Director.NAME
FROM Movie
INNER JOIN Movie - director ON Movie.Movie_ID = Movie - director.Movie_ID
INNER JOIN Director ON Movie - director.Director_ID = Director.Director_ID
WHERE (title LIKE '%' + (@p1) + '%')
AND (
(
actors LIKE '%' + (@p2) + '%' AND @p2 IS NOT NULL)
OR (
cat_ID = @p3 OR @p3 IS NULL
)
)
ASPX:
<asp:Repeater ID="Repeater1" runat="server" >
<HeaderTemplate> </HeaderTemplate>
<ItemTemplate>
<div style="width:100%;">
<div class="excerpt">
<a href="movie_details.aspx?id=<%# DataBinder.Eval(Container.DataItem, "Movie_ID")%>" class="thumb" title="An image">
<img src="<%# DataBinder.Eval(Container.DataItem, "image")%>" alt="Post" style="opacity: 1; float:left; width:80px ; height:100px; border:3px solid #fff ; margin:5px;">
</a>
<a href="movie_details.aspx?id=<%# DataBinder.Eval(Container.DataItem, "Movie_ID")%>" class="header">
<h6>
<%# DataBinder.Eval(Container.DataItem, "title")%>
( <%# DataBinder.Eval(Container.DataItem, "actors")%>)
</h6>
</a>
<div style="padding:5px;">
<%# DataBinder.Eval(Container.DataItem, "description")%>
</div>
<div style="padding:5px;">
<%# DataBinder.Eval(Container.DataItem, "name")%>
</div>
</div>
</div>
<br />
<hr />
</ItemTemplate>
</asp:Repeater>
C# code
CDTDataContext dc = new CDTDataContext();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack){ }
}
protected void Button1_Click(object sender, EventArgs e)
{
string Cat_ID = DropDownList1.SelectedValue;
string keyword1 = TextBox2.Text;
string keyword2 = TextBox3.Text;
int? cid = int.Parse(cat_id);
Repeater1.DataSource = dc.SelectMovie(keyword1, keyword2, cid);
Repeater1.DataBind();
}