Click here to Skip to main content
15,889,527 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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




SQL
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) + '%') --title has to be matched

    AND (

           (

                    actors LIKE '%' + (@p2) + '%' AND @p2 IS NOT NULL)     --match only then when @p2 is not null

        OR (

                    Name = @p3 OR @p3 IS NULL          --if @p3 IS NULL then do not filter by @p3

           )

        )


aspx:


XML
<%@ 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>

            &nbsp;<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#:

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();
    }
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900