How to create a button which passes parameters coming from two drop down list

Posted on 2009-03-30
Last Modified: 2013-11-26

I already have a button (in ASP.NET) which calls a procedure (SQL Server 2000)  and generates a XML file. But i want that when the button is invoked (OnClick event) it gets the value on the two drop down list and passes it as the parameters of the procedure.

Here is my webpage code...
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SQLClient"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="" >
<head runat="server">
    <title>Untitled Page</title>
    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" Style="z-index: 100; left: 264px; position: absolute;
            top: 144px" Text="Button" />
        &nbsp; &nbsp;&nbsp;
        <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="SqlDataSource3"
            DataTextField="NationalUPN" DataValueField="NationalUPN" Style="z-index: 103;
            left: 248px; position: absolute; top: 48px">
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:CENTRISConnectionString %>"
            SelectCommand="SELECT [NationalUPN] FROM [Student]"></asp:SqlDataSource>
        <asp:DropDownList ID="DropDownList4" runat="server" DataSourceID="SqlDataSource4"
            DataTextField="Name" DataValueField="Name" Style="z-index: 105; left: 248px;
            position: absolute; top: 80px">
        <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:CENTRISConnectionString %>"
            SelectCommand="SELECT [Name] FROM [School] ORDER BY [Name]"></asp:SqlDataSource>

And attached is my button code...

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Using conn As New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("SMI_CENTRISConnectionString").ConnectionString)
            Dim cmd As New Data.SqlClient.SqlCommand("SMI_P001_XML_Download_Test", conn)
            cmd.CommandType = Data.CommandType.StoredProcedure
            Dim da As New Data.SqlClient.SqlDataAdapter(cmd)
            Dim ds As New Data.DataSet
            Dim nowString As String = Now.ToString("dd-MM-yyyy")
            Dim fileName As String = "D:\TEMP\SMI_Student_Transfer_" & nowString & ".xml"
            Dim doc As System.Xml.XmlDataDocument = New System.Xml.XmlDataDocument(ds)
            Dim transform As New System.Xml.Xsl.XslCompiledTransform()
            Dim writer As System.Xml.XmlTextWriter = New System.Xml.XmlTextWriter(fileName, System.Text.Encoding.UTF8)
            writer.Formatting = System.Xml.Formatting.Indented
            writer.Indentation = 4
            transform.Transform(doc, Nothing, writer)
        End Using
    End Sub

Open in new window

Question by:jsuanque
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
LVL 29

Expert Comment

by:David H.H.Lee
ID: 24025690
hi jsuanque,
>>..gets the value on the two drop down list and passes it as the parameters of the procedure
Assume the parameter for item 1 is @ID1, item 2 is @ID2 in your store procedure.

SP:>> SMI_P001_XML_Download_Test
Select * from tblTest where ID=@ID AND ID2=@ID2

Try this:
            Dim cmd As New Data.SqlClient.SqlCommand("SMI_P001_XML_Download_Test", conn)
            cmd.CommandType = Data.CommandType.StoredProcedure
            'Add parameter for WHERE clause.
            cmd.Parameters.Add("@ID1", SqlDbType.Int)
            cmd.Parameters("@ID1").Value = DropDownList3.SelectedValue.ToString
            cmd.Parameters.Add("@ID2", SqlDbType.Int)
            cmd.Parameters("@ID2").Value = DropDownList4.SelectedValue.ToString

Open in new window


Author Comment

ID: 24025946
hi X_Xom,

I've got an error..."Name 'SqlDBType" not declared."

Is this item  (
needs to be included? If yes, where?

LVL 29

Expert Comment

by:David H.H.Lee
ID: 24026147
Hi jsuanque,
You can import this namespace:

or declare this type separately:
>>cmd.Parameters.Add("@ID1", System.Data.SqlClient.SqlDbType.Int)

More details for SqlDbType:

Lastly, the link that i posted previously is giving you an example how to add parameters inside your existing sql command.

LVL 29

Accepted Solution

David H.H.Lee earned 250 total points
ID: 24026182
Amendment ,it should return from System.Data namespace:
cmd.Parameters.Add("@ID1", System.Data.SqlDbType.Int)

Author Closing Comment

ID: 31564669
Took me awhile to absorb it ...but finally got it based on your recommendations. Thanks

Featured Post

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor ( Top Charts is a view in which you can set seve…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question