eyelash
یک شنبه 01 شهریور 1388, 16:41 عصر
سلام دوستان
من توی سایتم یه صفحه جستجو گذاشتم که کاربر می تونه هر فیلدی را که خواست مقدار دهی کنه و بر اساس اونها عمل جستجو را انجام بده. داده ها هم تو یه بانکSQL 2005 نگهداری می کنم و برای جستجو ازStored Procedure استفاده می کنم.
مشکل اینجاست که اونtextBoxهای که مقداری براشون وارد نمی شه چیزی به جز null برای SP ارسال می کنند و در نتیجه عمل جستجو همیشه بدون نتیجه خواهد بود. :عصبانی++::عصبانی++::عصبانی++:
من تعریف SP و SQLdataSourceمختصر برنامه را می ذارم. ممنون می شم دوستان کمک کنن تا بفهمم مشکل از کجاست که داده ارسال شده null و یا داده ای با طول صفر نیست.
SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:BlueShopConnectionString %>"
SelectCommand="SpSearch1" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="TxtName" Name="Name" PropertyName="Text"
Type="String" />
<asp:ControlParameter ControlID="txtMark" Name="ma" PropertyName="Text" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
Store Producer
ALTER PROCEDURE [dbo].[SpSearch1]
@Name as nvarchar(15),
@ma as nvarchar (10)
AS
BEGIN
Declare @SelectCommand as Nvarchar(1000)
Set @SelectCommand= N'Select * from Product Where ('
if (len (@Name) <> 0)
Set @SelectCommand = @SelectCommand +
N' Product.[Name] = @N'
if (@ma is null)
Set @SelectCommand = @SelectCommand +
N' and Product.Producer = @m'
set @SelectCommand = @SelectCommand + ')'
Execute SP_Executesql @SelectCommand,
N'@N Nvarchar (15), @m nvarchar(10)'
,@N = @Name, @m = @ma
END
ممنون
من توی سایتم یه صفحه جستجو گذاشتم که کاربر می تونه هر فیلدی را که خواست مقدار دهی کنه و بر اساس اونها عمل جستجو را انجام بده. داده ها هم تو یه بانکSQL 2005 نگهداری می کنم و برای جستجو ازStored Procedure استفاده می کنم.
مشکل اینجاست که اونtextBoxهای که مقداری براشون وارد نمی شه چیزی به جز null برای SP ارسال می کنند و در نتیجه عمل جستجو همیشه بدون نتیجه خواهد بود. :عصبانی++::عصبانی++::عصبانی++:
من تعریف SP و SQLdataSourceمختصر برنامه را می ذارم. ممنون می شم دوستان کمک کنن تا بفهمم مشکل از کجاست که داده ارسال شده null و یا داده ای با طول صفر نیست.
SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:BlueShopConnectionString %>"
SelectCommand="SpSearch1" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="TxtName" Name="Name" PropertyName="Text"
Type="String" />
<asp:ControlParameter ControlID="txtMark" Name="ma" PropertyName="Text" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
Store Producer
ALTER PROCEDURE [dbo].[SpSearch1]
@Name as nvarchar(15),
@ma as nvarchar (10)
AS
BEGIN
Declare @SelectCommand as Nvarchar(1000)
Set @SelectCommand= N'Select * from Product Where ('
if (len (@Name) <> 0)
Set @SelectCommand = @SelectCommand +
N' Product.[Name] = @N'
if (@ma is null)
Set @SelectCommand = @SelectCommand +
N' and Product.Producer = @m'
set @SelectCommand = @SelectCommand + ')'
Execute SP_Executesql @SelectCommand,
N'@N Nvarchar (15), @m nvarchar(10)'
,@N = @Name, @m = @ma
END
ممنون