VB.NET TO C # - Gridview Код для поиска из списка в хранимой процедуре - PullRequest
0 голосов
/ 17 февраля 2011

Я ищу правильный код синтаксиса в C # для отображения результатов поиска из нескольких параметров в Gridview. Я только что сделал нечто подобное в VB.NET, но мне нужно обновить проект в C # .NET, и я не уверен:

1) правильный синтаксис кода в C # .NET (код в VB.NET)

2) как указать несколько параметров поиска в случае, если пользователь выбирает несколько параметров плана страхования, параметры нескольких возрастов и / или M из списка

3) отключить или включить возможность выбора нескольких параметров в списке. (Для полей State и Zip List я бы хотел отключить выбор нескольких параметров, а для Plan, Age и Carrier я бы хотел выбрать несколько параметров.

Вот что у меня есть на сервере в VB.NET, который должен быть в C # .NET:

      Protected Sub SearchButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SearchButton.Click
        With Me.SqlDataSource1
        .SelectParameters.Clear()

        .ConnectionString = ConfigurationManager.AppSettings("PriceFinderConnectionString").ToString
        .SelectCommand = "up_SelectPriceFinderResults" //calling stored procedure 
        .SelectParameters.Add("state_code", Me.lastname.Text)
        .SelectParameters.Add("zip_code", Me.city.Text)
        .SelectParameters.Add("plan_name", Me.state.Text)
        .SelectParameters.Add("age", Me.state.Text)
        .SelectParameters.Add("carrier_name", Me.donotmail.Text)

        .SelectParameters(0).ConvertEmptyStringToNull = True
        .SelectParameters(1).ConvertEmptyStringToNull = True
        .SelectParameters(2).ConvertEmptyStringToNull = True
        .SelectParameters(3).ConvertEmptyStringToNull = True
        .SelectParameters(4).ConvertEmptyStringToNull = True
        .SelectCommandType = SqlDataSourceCommandType.StoredProcedure

        .CancelSelectOnNullParameter = False

    End With

    GridView2.DataBind()
  End Sub

Вот код для хранимой процедуры:

PROCEDURE [dbo].[up_SelectPriceFinderResults] 
-- Add the parameters for the stored procedure here
@state_code varchar(20)= NULL, 
@zip_code varchar(20)= NULL,
     @plan_code varchar(2)= NULL, 
     @insur_age varchar(2)= NULL,
@carrier_name varchar(20)= NULL,

     AS
     BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.

SET NOCOUNT ON;

-- Insert statements for procedure here

IF len(@state_code)=0 
   BEGIN SET @state_code=NULL
   END
IF len(@zip_code)=0
   BEGIN SET @zip_code=NULL 
   END  
IF len(@plan_name)=0
   BEGIN SET @plan_code=NULL
   END
IF len(@insur_age)=0
   BEGIN SET @age=NULL
   END
IF len(@carrier_name)=0
   BEGIN SET @carrier_name=NULL
   END


SELECT  [state_code], 
    [zip_code], 
    [plan_code], 
    [carrier_name],
    [insur_age],  
            [female_value],
    [male_value]        
        CASE WHEN [female_value] is NULL OR 0 
            THEN 'N/A'
        END AS 'female_value',
        CASE WHEN [male_value] is NULL OR 0 
            THEN 'N/A'
        END AS 'male_value',
FROM 
       [state_zipcode_plans] 
WHERE
        (([state_code] = @state_code OR @state_code IS NULL) 
    AND ([zip_code] = @zip_code OR @zip_code IS NULL) 
    AND ([plan_name] = @plan_name OR @plan_name IS NULL) 
    AND ([insur_age] = @insur_age OR @insur_age IS NULL)
    AND ([carrier_name] = @carrier_name OR @carrier_name IS NULL))

ORDER BY 
       [plan_code], [female_value], [male_value]
END

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

1) Есть несколько способов подойти к этому:

Бесплатные инструменты доступны онлайн:

http://www.developerfusion.com/tools/convert/vb-to-csharp/

Изучите синтаксис C #.

Это не сложно, и чрезвычайно удобно иметь возможность читать C #, даже если вы в основном работаете на VB.net, потому что многие примеры кода, доступные в Интернете, находятся на C #.

2) Это сложно сделать с подходом к процедуре хранения, который у вас есть. Вам нужно будет либо просто создать динамический SQL (используя параметры связывания , где это возможно), либо создать хранимую процедуру proc и выполнить dyanmic sql.

3) Это просто: просто установите свойство SelectionMode для ListBoxs соответственно.

0 голосов
/ 09 марта 2011

Используя конвертер, вот код, который я нашел с C #:

 protected void SearchButton_Click(object sender, EventArgs e)
 {
var _with1 = this.SqlDataSource1;
_with1.SelectParameters.Clear();

_with1.ConnectionString = ConfigurationManager.AppSettings("AgentLeadsConnectionString").ToString;
_with1.SelectCommand = "up_SelectMktDataLeads";
_with1.SelectParameters.Add("state_code", this.state_code.Text);
_with1.SelectParameters.Add("zip_code", this.zip_code.Text);
_with1.SelectParameters.Add("plan_name", this.plan_name.Text);
_with1.SelectParameters.Add("age", this.age.Text);
_with1.SelectParameters.Add("carrier_name", this.carrier_name.Text);

_with1.SelectParameters(0).ConvertEmptyStringToNull = true;
_with1.SelectParameters(1).ConvertEmptyStringToNull = true;
_with1.SelectParameters(2).ConvertEmptyStringToNull = true;
_with1.SelectParameters(3).ConvertEmptyStringToNull = true;
_with1.SelectParameters(4).ConvertEmptyStringToNull = true;
_with1.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;

_with1.CancelSelectOnNullParameter = false;


GridView2.DataBind();
 }
...