Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2652
  • Last Modified:

Dynamically add the checkboxlist checked value of asp.ne/C# in a stored procedure of sql server 2008

Hi,

I am using Asp.net/C# 3 tiers Architecture, i have 3 checkboxlists and there are several checkboxes in each checkboxlist, im sending the parameters of every checked checkbox value to sqlserver 2008 as a parameter and then include it in the select statement.

the problem i have is im sending all checkboxes as a parameter and then in sql server stored procedure im checking with if statement that if this is not empty then include it in the select statement so for this i have included a lot of if statements,

my question is that is there any way to build a dynamically sql server stored procdeure which check the parameters that if it is not empty then it include it in the select statement otherwise ignore it.

any help will be appreciated.

Thanks.
0
Ali Shah
Asked:
Ali Shah
  • 3
  • 2
2 Solutions
 
AshokCommented:
Would not it be better to build field names separated by comma and pass it to the stored procedure?

For example, if checkbox1 is checked, checkbox2 is not checked, checkbox3 is checked and checkbox4 is checked, then

you pass "field1, field3, field4" to the stored procedure.  By the way the string you pass would become fully dynamic.

then in your stored procedure, the select statement would look something like.....
select field1, field3, field4 from mytable

Just an idea.

HTH
Ashok
0
 
Ali ShahSQL DeveloperAuthor Commented:
thanks ashok, please can u give me an example as  i need to write the stored procedure in sql server , how can i make the string in asp.net/C# and then how do i convert that string in stored procedure and use it in the select statement in sql server.

thanks
0
 
AshokCommented:
Create stored procedure like this.....

USE [AdventureWorks]
GO


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[TestFieldPass]
  @field_names varchar(500)
AS
  set nocount on
  set ansi_warnings off
 
  declare @strSQL varchar(1500);
 
  set @strSQL = 'select ' + @field_names + ' from Person.Contact';
 
  EXEC(@strSQL)


Testing.....

USE [AdventureWorks]
GO

DECLARE      @return_value int

EXEC      @return_value = [dbo].[TestFieldPass]
            @field_names = N'Phone,EmailAddress'

SELECT      'Return Value' = @return_value

GO
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
AshokCommented:
On ASP.NET side (assuming CheckBoxList1.Items[i].Text has fieldname)

string sql ='';

      for (int i = 0; i < CheckBoxList1.Items.Count; i++)
      {
        if (CheckBoxList1.Items[i].Selected == true)
        {
         sql += CheckBoxList1.Items[i].Text + ",";
        }
      }

sql.Remove(sql.Length - 1, 1);

Open in new window


Now you can pass sql (as FieldNames parameter to your Stored Procedure).

HTH
Ashok
0
 
Anthony PerkinsCommented:
Please post your Stored Procedure as it stands and we can make more appropriate suggestions.  Typically you can pass all your checkbox values as a single parameter, either as a tinyint or Xml.
0
 
Ali ShahSQL DeveloperAuthor Commented:
Thank you very much for your help. It worked really fine.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now