C#store中的下拉列表导致存储过程

时间:2014-07-21 16:36:47

标签: sql drop-down-menu

这是一个注册表单,用于接受用户详细信息并存储在存储过程中。

我能够获取所有字段并将结果存储在SQL中,但我的下拉列表存在问题。

请建议我一个解决方案

ASPX加价:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplicationSAFinal._Default" %>
<script runat="server">
</script>

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
  <h2 class="text-center">
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;
      System Access Form
  </h2>
 <div>
    <table>
        <tr>
            <td style="width: 597px; height: 41px;">
                <asp:Label ID="Label1" runat="server" Text="Last Name:" Font-Bold="True"></asp:Label>
            &nbsp;&nbsp;&nbsp;&nbsp;
            <asp:TextBox ID="textnamel" runat="server"></asp:TextBox>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:RequiredFieldValidator id="RequiredFieldValidator7" runat="server"
                 ControlToValidate="textnamel"
                 ErrorMessage="Last Name is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px">
                <asp:Label ID="Label4" runat="server" Text="First Name:" Font-Bold="True"></asp:Label>
                &nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="textnamef" runat="server"></asp:TextBox>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:RequiredFieldValidator id="RequiredFieldValidator6" runat="server"
                 ControlToValidate="textnamef"
                 ErrorMessage=" First Name is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>

            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px">
                <asp:Label ID="Label10" runat="server" Font-Bold="True" Text="System Name:"></asp:Label>
       &nbsp;
                <asp:DropDownList ID="DropDownList1" runat="server" Height="22px" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" Width="128px">
                    <asp:ListItem Value="0">Select</asp:ListItem> //dropdown list
                    <asp:ListItem Value="1">Infi</asp:ListItem>
                    <asp:ListItem Value="2">comp</asp:ListItem>
                    <asp:ListItem Value="3">Quest</asp:ListItem>
                    <asp:ListItem Value="4">look</asp:ListItem>
                    <asp:ListItem Value="5">Med</asp:ListItem>
                    <asp:ListItem Value="6">MAS</asp:ListItem>
                    <asp:ListItem Value="7">Silo</asp:ListItem>
                    <asp:ListItem Value="8">Sym</asp:ListItem>
                    <asp:ListItem Value="9">ER</asp:ListItem>
                    <asp:ListItem Value="10">Crane</asp:ListItem>
                    <asp:ListItem Value="11">StaRpts</asp:ListItem>
                    <asp:ListItem Value="12">PD</asp:ListItem>
                    <asp:ListItem Value="13">System</asp:ListItem>
                    <asp:ListItem Value="14">Mobi</asp:ListItem>
                    <asp:ListItem Value="15">Sov</asp:ListItem>
                </asp:DropDownList>
                 &nbsp;&nbsp;&nbsp;
                 <asp:RequiredFieldValidator id="RequiredFieldValidator9" runat="server"
                 ControlToValidate="DropDownList1"
                 ErrorMessage="Please select a system name."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>

            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px">
                <asp:Label ID="Label2" runat="server" Text="Department:" Font-Bold="True"></asp:Label>
                &nbsp;
                <asp:TextBox ID="textdept" runat="server"></asp:TextBox>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:RequiredFieldValidator id="RequiredFieldValidator8" runat="server"
                 ControlToValidate="textdept"
                 ErrorMessage="Department is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>

            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px">
                <asp:Label ID="Label5" runat="server" Text="Phone:" Font-Bold="True">
           </asp:Label>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="textphone" runat="server" ></asp:TextBox>

                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <asp:RequiredFieldValidator id="RequiredFieldValidator3" runat="server"
                 ControlToValidate="textphone"
                 ErrorMessage="Phone is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>
            &nbsp;

                 <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="textphone"
            ErrorMessage="Invalid number" ValidationExpression="^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$" Font-Bold="True"></asp:RegularExpressionValidator>
                 &nbsp;
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px">
                <asp:Label ID="Label3" runat="server" Text="Location:" Font-Bold="True"></asp:Label>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="textloc" runat="server"></asp:TextBox>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server"
                 ControlToValidate="textloc"
                 ErrorMessage="Location is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px;">
                <asp:Label ID="Label6" runat="server" Text="Email:" Font-Bold="True"></asp:Label>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="textemail" runat="server" ></asp:TextBox>

                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server"
                 ControlToValidate="textemail"
                 ErrorMessage="Email is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>
            &nbsp;&nbsp;&nbsp;

                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="textemail"
            ErrorMessage="Invalid Email Id" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Font-Bold="True"></asp:RegularExpressionValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px;">
                <asp:Label ID="Label7" runat="server" Text="Security Level/Group:" Font-Bold="True"></asp:Label>
                &nbsp;<asp:TextBox ID="textgroup" runat="server"></asp:TextBox>
                &nbsp;&nbsp;<asp:RequiredFieldValidator id="RequiredFieldValidator4" runat="server"
                 ControlToValidate="textgroup"
                 ErrorMessage="Security Group is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px;">
                <asp:Label ID="Label8" runat="server" Text="Login ID:" Font-Bold="True"></asp:Label>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="textid" runat="server"></asp:TextBox>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:RequiredFieldValidator id="RequiredFieldValidator5" runat="server"
                 ControlToValidate="textid"
                 ErrorMessage="Login ID is a required field."
                 ForeColor="Red" Font-Bold="True"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px;">
                <asp:Label ID="Label9" runat="server" Text="Comments:" Font-Bold="True"></asp:Label>
                &nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="textcom" runat="server" Height="22px" Width="128px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td style="width: 597px; height: 41px;">
                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:Button ID="submit" runat="server" Text="Add" OnClick="submit_Click" Font-Bold="True" />
                &nbsp;&nbsp;
                <asp:Button ID="cancel" runat="server" Font-Bold="True" Text="Cancel" OnClick="Page_Load"/>
 &nbsp;&nbsp;&nbsp;
                <asp:Label ID="labelerror" runat="server" ForeColor="Green"> </asp:Label>
            </td>
        </tr>
      </table>
   </div>
  </asp:Content>

C#代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplicationSAFinal
{
   public partial class _Default : System.Web.UI.Page
   {
      SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString());
      protected void Page_Load(object sender, EventArgs e)
      {
         if (!IsPostBack)
         {
            binddata();
         }
      }

      protected void binddata()
      {
         DropDownList ddlist1 = new DropDownList();

         ListItem item1 = new ListItem("Select Value","0");
         ListItem item2 = new ListItem("Infi","1");
         ListItem item3 = new ListItem("comp","2");
         ListItem item4 = new ListItem("Quest","3");
         ListItem item5 = new ListItem("look","4");
         ListItem item6 = new ListItem("Med","5");
         ListItem item7 = new ListItem("MAS","6");
         ListItem item8 = new ListItem("Silo","7");
         ListItem item9 = new ListItem("Sym","8");
         ListItem item10 = new ListItem("ER", "9");
         ListItem item11 = new ListItem("Crane", "10");
         ListItem item12 = new ListItem("StaRpts", "11");
         ListItem item13 = new ListItem("PD", "12");
         ListItem item14 = new ListItem("System", "13");
         ListItem item15 = new ListItem("Mobi", "14");
         ListItem item16 = new ListItem("Sov", "15");

         ddlist1.Items.Add(item1);
         ddlist1.Items.Add(item2);
         ddlist1.Items.Add(item3);
         ddlist1.Items.Add(item4);
         ddlist1.Items.Add(item5);
         ddlist1.Items.Add(item6);
         ddlist1.Items.Add(item7);
         ddlist1.Items.Add(item8);
         ddlist1.Items.Add(item9);
         ddlist1.Items.Add(item11);
         ddlist1.Items.Add(item12);
         ddlist1.Items.Add(item13);
         ddlist1.Items.Add(item14);
         ddlist1.Items.Add(item15);
         ddlist1.Items.Add(item16); 
       } 

       protected void submit_Click(object sender, EventArgs e)
       {
         try
         {
            conn.Open();
            string sql = "final_form_insert"; // stored procedure name
            SqlParameter[] par = new SqlParameter[10]; /array

            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.CommandType = CommandType.StoredProcedure;

            par[0] = new SqlParameter("@lname", textnamel.Text);
            par[1] = new SqlParameter("@fname", textnamef.Text);
            par[2] = new SqlParameter("@dept", textdept.Text);
            par[3] = new SqlParameter("@phone", textphone.Text);
            par[4] = new SqlParameter("@location", textloc.Text);
            par[5] = new SqlParameter("@email", textemail.Text);
            par[6] = new SqlParameter("@slg", textgroup.Text);
            par[7] = new SqlParameter("@id", textid.Text);
            par[8] = new SqlParameter("@comments", textcom.Text);
            par[9] = new SqlParameter("@systemname", DropDownList1.Text); // Should Text be used as the extension for a dropdown list

            foreach (SqlParameter a in par) //adding all the parameters
            { 
                cmd.Parameters.Add(a);
            } 

       string UserId = Convert.ToString(cmd.ExecuteNonQuery());
            if (UserId.Length > 0)
            {
                labelerror.Text = "Records Updated...!";

                textcom.Text = string.Empty;
                textid.Text = string.Empty;
                textgroup.Text = string.Empty;
                textemail.Text = string.Empty;
                textloc.Text = string.Empty;
                textphone.Text = string.Empty;
                textdept.Text = string.Empty;
                textnamef.Text = string.Empty;
                textnamel.Text = string.Empty;
                DropDownList1.Text = string.Empty; // please tell me the .extension for a drop down list
            }
            else
            {
            }
          }
          catch (Exception ex)
          {
            labelerror.Text = ex.Message;
          }
          finally
          {
              conn.Close();
          }
      }

      protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
      {
            //left empty
      }
    }
  }

1 个答案:

答案 0 :(得分:0)

您想使用DropDownList1.SelectedValue

public string DropDownListValue
{
    get { return DropDownList1.SelectedValue; }
    set
    {
        if (DropDownList1.Items.FindByValue(value) != null)
            DropDownList1.SelectedValue = value;
    }
}

提取

...
par[9] = new SqlParameter("@systemname", DropDownListValue); 
...

分配

...
DropDownListValue = string.Empty; 
...