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 display nothing (no result) I have 3 tables : (Movie , Director, Movie-director)
movie table:
movie_Id int Unchecked
title varchar(50) Unchecked
description text Checked
year varchar(4) Checked
average_rating int Checked
image varchar(100) Checked
actors varchar(100) Checked
price real Checked
director int Checked
cat_Id int Checked
binary varchar(50) Checked
Unchecked
director table:
director_Id int Unchecked
Name varchar(50) Checked
Movie-director Table:
[Movie-director_ID] int Unchecked
movie_Id int Checked
director_Id int Checked
ALTER PROCEDURE [dbo].[SelectMovie]
@P1 NVARCHAR(50) ,
@P2 NVARCHAR(255) = NULL,
@P3 varchar(50) = NULL
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT movies.movie_Id, movies.title, movies.description, movies.image, directors.Name
FROM directors INNER JOIN
[Movie-director] ON directors.director_Id = [Movie-director].director_Id INNER JOIN
movies ON [Movie-director].movie_Id = movies.movie_Id
WHERE (title LIKE '%' + (@p1) + '%')
AND (
(
actors LIKE '%' + (@p2) + '%' AND @p2 IS NOT NULL)
OR (
Name = @p3 OR @p3 IS NULL
)
)
aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="tarDefault2.aspx.cs" Inherits="tarDefault2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="title"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Label ID="Label2" runat="server" Text="actor"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:Label ID="Label3" runat="server" Text="director Name"></asp:Label>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="search" />
<br />
<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>
</div>
</form>
</body>
</html>
C#:
DataClassesDataContext dc = new DataClassesDataContext();
protected void Button1_Click(object sender, EventArgs e)
{
string keyword1 = TextBox1.Text;
string keyword2 = TextBox2.Text;
string keyword3 = TextBox3.Text;
Repeater1.DataSource = dc.SelectMovie(keyword1, keyword2, keyword3);
Repeater1.DataBind();
}