PDA

View Full Version : استفاده از پارامترها و کوری در ASP



the Dead
دوشنبه 15 تیر 1388, 10:53 صبح
سلام،
در حقيقت ميخوام با Dropdownlist هر ايتمی انتخاب شد معادل اي دی اش به عنوان پارامتر فرستاده شود به datasource1 قسمت کوری انتخاب که به اون grid نيز برای نمايش متصل است


فرض کنيد اين DATABASE وجود دارد

USE Players

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[whatplayswhatformat]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[whatplayswhatformat]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[format]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[format]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[player]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[player]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[manufacturer]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[manufacturer]

CREATE TABLE Manufacturer (
ManufacturerID int NOT NULL identity,
ManufacturerName varchar(50) NOT NULL default '',
ManufacturerCountry varchar(50) default NULL,
ManufacturerEmail varchar(100) default NULL,
ManufacturerWebsite varchar(100) default NULL,
CONSTRAINT PK__Manufacturer PRIMARY KEY (ManufacturerID)
)

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Apple', 'USA', 'lackey@apple.com', 'http://www.apple.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Creative', 'Singapore', 'someguy@creative.com', 'http://www.creative.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('iRiver', 'Korea', 'knockknock@iriver.com', 'http://www.iriver.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('MSI', 'Taiwan', 'hello@miscomputer.co.uk', 'http://www.miscomputer.co.uk')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Rio', 'USA', 'Greetings@rio.com', 'http://www.rio.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('SanDisk', 'USA', 'heyhey@sandisk.com', 'http://www.sandisk.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Sony', 'Japan', 'hi_San@sony.co.jp', 'http://www.sony.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Cowon', 'Korea', 'moomoo@cowon.com', 'http://www.cowon.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Frontier Labs', 'Hong Kong', 'frontdesk@frontierlabs.com', 'http://www.frontierlabs.com')

INSERT INTO Manufacturer (ManufacturerName, ManufacturerCountry, ManufacturerEmail, ManufacturerWebsite)
VALUES('Samsung', 'Japan', 'mashimashi@samsung.co.jp', 'http://www.samsung.com')


CREATE TABLE Format (
FormatID int NOT NULL identity,
FormatName varchar(50) NOT NULL default '',
CONSTRAINT PK__Format PRIMARY KEY (FormatID)
)

INSERT INTO Format (FormatName) VALUES ('wav')
INSERT INTO Format (FormatName) VALUES ('mp3')
INSERT INTO Format (FormatName) VALUES ('aac')
INSERT INTO Format (FormatName) VALUES ('wma')
INSERT INTO Format (FormatName) VALUES ('asf')
INSERT INTO Format (FormatName) VALUES ('ogg')
INSERT INTO Format (FormatName) VALUES ('atrac')
INSERT INTO Format (FormatName) VALUES ('aiff')


CREATE TABLE Player (
PlayerID int NOT NULL identity,
PlayerName varchar(50) NOT NULL default '',
PlayerManufacturerID int NOT NULL default '0',
PlayerCost decimal(10,2) NOT NULL default '0',
PlayerStorage varchar(50) NOT NULL default '',
CONSTRAINT PK__Player PRIMARY KEY (PlayerID),
CONSTRAINT FK_Player_Manufacturer FOREIGN KEY (PlayerManufacturerID) REFERENCES Manufacturer(ManufacturerID)
)

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iPod Shuffle', 1, 99, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('MuVo V200', 2, 96, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iFP-700 Series', 3, 149, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iFP-900 Series', 3, 149, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('MegaPlayer 521', 4, 199, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Forge', 5, 93, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Digital Audio Player', 6, 119, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Network Walkman NW-E99', 7, 135, 'Solid State')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iPod', 1, 209, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iPod Mini', 1, 169, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iPod Photo', 1, 309, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('iAudio M3', 8, 249, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Zen Micro', 2, 138, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Zen Touch', 2, 169, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('L1', 9, 149, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('H10', 3, 189, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('H300 Series', 3, 319, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Carbon', 5, 169, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Napster YH-920', 10, 179, 'Hard Disk')

INSERT INTO Player (PlayerName, PlayerManufacturerID, PlayerCost, PlayerStorage)
VALUES ('Network Walkman NW-HD3', 7, 215, 'Hard Disk')


CREATE TABLE WhatPlaysWhatFormat (
WPWFPlayerID int NOT NULL default '0',
WPWFFormatID int NOT NULL default '0',
CONSTRAINT PK__WhatPlaysWhatFormat PRIMARY KEY (WPWFFormatID,WPWFPlayerID),
CONSTRAINT FK_WhatPlaysWhatFormat_Player FOREIGN KEY (WPWFPlayerID) REFERENCES Player (PlayerID),
CONSTRAINT FK_WhatPlaysWhatFormat_Format FOREIGN KEY (WPWFFormatID) REFERENCES Format (FormatID)
)

INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (1,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (1,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (1,3)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (2,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (2,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (3,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (3,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (3,5)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (3,6)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (4,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (4,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (4,5)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (4,6)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (5,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (5,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (5,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (6,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (6,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (7,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (7,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (8,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (8,7)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (9,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (9,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (9,3)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (9,8)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (10,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (10,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (10,3)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (10,8)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (11,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (11,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (11,3)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (11,8)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (12,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (12,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (12,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (12,5)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (12,6)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (13,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (13,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (14,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (14,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (14,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (15,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (15,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (15,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (16,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (16,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (17,1)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (17,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (17,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (17,5)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (17,6)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (18,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (18,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (19,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (19,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (20,2)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (20,4)
INSERT INTO WhatPlaysWhatFormat (WPWFPlayerID, WPWFFormatID) VALUES (20,6)

exec sp_addlogin 'band', 'letmein'
exec sp_grantdbaccess 'band', 'band'
GRANT SELECT, INSERT, UPDATE, DELETE TO band
اين هم کد برنامه ماست


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{

}

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList1.Items.Insert(0,
new ListItem("-- All Manufacturers --", "0"));
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Select</title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Band\players.mdb"
ProviderName="System.Data.OleDb"


SelectCommand="SELECT Player.PlayerName, Manufacturer.ManufacturerName FROM (Player INNER JOIN Manufacturer ON Player.PlayerManufacturerID = Manufacturer.ManufacturerID) WHERE (Manufacturer.ManufacturerID = @ManufacturerID)"
onselecting="SqlDataSource1_Selecting">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="ManufacturerID"
PropertyName="SelectedValue" DefaultValue="33" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>

<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:playersConnectionString %>"
ProviderName="<%$ ConnectionStrings:playersConnectionString.Provider Name %>"
SelectCommand="SELECT [ManufacturerID], [ManufacturerName] FROM [Manufacturer] ORDER BY [ManufacturerName]">
</asp:SqlDataSource>

</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333"
GridLines="None">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="PlayerName" HeaderText="PlayerName"
SortExpression="PlayerName" />
<asp:BoundField DataField="ManufacturerName"
HeaderText="ManufacturerName" SortExpression="ManufacturerName" />
<asp:BoundField DataField="ManufacturerID" HeaderText="ManufacturerID"
SortExpression="ManufacturerID" />
</Columns>
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource2" DataTextField="ManufacturerID"
DataValueField="ManufacturerID" Height="16px" Width="91px"
ondatabound="DropDownList1_DataBound">
</asp:DropDownList>
</form>
</body>
</html>
کدام مرحله را اشتباه رفتم که وقتی در کوری بيلدر جلوی Manufacturer.ManufacturerID شرط =@
ManufacturerID را ميذارم خطا Datatype error in expression را ميدهد
به عکس های ضميمه نيز نگاهی بياندازيد
مرسی..

milade
دوشنبه 15 تیر 1388, 11:14 صبح
سلام

احساس من اینه که دیتابایند Drop بعد از لود Call میشه و چون هیچ مقداری نداره خطا میده .
یه تست کن و توی Page_load ( یا Page_int ) Drop رو بایند کن ببین چی میشه .

ضمن اینگه نیاز به Quory بانک هم نیست ...(همین طوری هم میشه Help کرد ... )

موفق باشید

the Dead
دوشنبه 15 تیر 1388, 11:36 صبح
سلام

احساس من اینه که دیتابایند Drop بعد از لود Call میشه و چون هیچ مقداری نداره خطا میده .
یه تست کن و توی Page_load ( یا Page_int ) Drop رو بایند کن ببین چی میشه .

ضمن اینگه نیاز به Quory بانک هم نیست ...(همین طوری هم میشه Help کرد ... )

موفق باشید
اون يک دونه مشکلی ايجاد نميکنه که تو ايونت گزاشتمش
چون مقادير ديگه ای قبل از اون موجود هست!(مقاديری که از کوری بدست ميايد)
دقت کنيد دراپ رو بهDATAsource2 وصل کردم که کوری زير را توليد ميکنه و در نتيجه دراپ خالی نميمونه

SELECT [ManufacturerID], [ManufacturerName] FROM [Manufacturer] ORDER BY [ManufacturerName]

milade
دوشنبه 15 تیر 1388, 12:22 عصر
دقت کنيد
اوه ! ببخشید درسته .
مشکل شما احتمالاً در Convert هست .
یعنی یا نمیتونه String رو بکنه Int32 و یا Int32 رو به Int !

روی تایپهای مختلف تست کن ...

the Dead
دوشنبه 15 تیر 1388, 12:34 عصر
اوه ! ببخشید درسته .
مشکل شما احتمالاً در Convert هست .
یعنی یا نمیتونه String رو بکنه Int32 و یا Int32 رو به Int !

روی تایپهای مختلف تست کن ...
http://img2.tinypic.info/viewer.php?file=mr21z5cbfi2eho5ueqxt.jpg
در قسمت type نوع int32 را هم امتحان کردم
ولی بازم مشکل داره

milade
دوشنبه 15 تیر 1388, 12:37 عصر
در قسمت type نوع int32 را هم امتحان کردم
من هم همین رو عرض کردم .
گفتم شاید چون مقداری که از DropDown میگیره رشته ای هست بخواد Int کنه مشکل داره .

در حال مشکل از نوع داده ای هست .

موفق باشید

the Dead
دوشنبه 15 تیر 1388, 18:44 عصر
من هم همین رو عرض کردم .
گفتم شاید چون مقداری که از DropDown میگیره رشته ای هست بخواد Int کنه مشکل داره .

در حال مشکل از نوع داده ای هست .

موفق باشید
اين چيزيه که ميگه ولی معلوم نيست حداقل به صورت مستقيم از اون باشه
يا اصلاً از اون باشه

the Dead
سه شنبه 16 تیر 1388, 08:49 صبح
اين چيزيه که ميگه ولی معلوم نيست حداقل به صورت مستقيم از اون باشه
يا اصلاً از اون باشه
کسی نيست راهنمايی کنه