Solved

Inserting a checkbox value into a SQL table via ASP.NET form.

Posted on 2006-11-01
5
447 Views
Last Modified: 2008-01-09
Hello experts,

    Does anyone know of a way to store the value of a checkbox on an ASP page in a SQL table as either a true or false value? I know how to retrieve the info from SQL, but not insert it. Currently the method I am using sets the value to true regardless of what is checked on the form.

Thanks.

Here is the code I am using.

Imports System.Data.SqlClient
Imports GISTableAdapters
Imports System.Net.Mail

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        txtDateIn.Text = Today
        txtID.Text = User.Identity.Name


    End Sub

 Protected Sub ddlRush_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlRush.SelectedIndexChanged
        If ddlRush.SelectedIndex = 2 Then
            txtDateBy.Text = Today.AddDays(1)
        Else
            txtDateBy.Text = Today.AddDays(4)
        End If
    End Sub

    Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
        Dim NewCase As New tblRequests1TableAdapter
        Dim requestno As Integer
        Dim m As New MailMessage

        If txtDateBy.Text = "" Then
            lblErrMsg.Text = "This is a required field in the form of mm/dd/yyyy."
            lblErrMsg.Visible = True
            lblError1.Visible = True
            txtDateBy.Focus()
            Exit Sub
        Else
            lblError1.Visible = False
            lblErrMsg.Visible = False
        End If

        'Check to make sure there is a project name associated with the field less
        'than 75 characters
        If txtProjName.Text = "" Then
            lblErrMsg.Visible = True
            lblErrMsg.Text = "This is a required field."
            lblError2.Visible = True
            txtProjName.Focus()
            Exit Sub
        Else
            lblError2.Visible = False
            lblErrMsg.Visible = False
        End If

        'Check to make sure if there are hours assigned to the request
        If txtHours.Text = "" Then
            lblErrMsg.Visible = True
            lblErrMsg.Text = "You must assign hours for this request."
            txtHours.Focus()
        Else
            lblErrMsg.Visible = False
        End If

        'check to see the values of the # of copies and correct so value isnt Null
        If txtcpySite.Text = "" Then
            txtcpySite.Text = "0"
        End If

        If txtcpySoils.Text = "" Then
            txtcpySoils.Text = "0"
        End If

        If txtcpyCNDDB.Text = "" Then
            txtcpyCNDDB.Text = "0"
        End If

        If txtcpyWet.Text = "" Then
            txtcpyWet.Text = "0"
        End If

        If txtcpyPropMap.Text = "" Then
            txtcpyPropMap.Text = "0"
        End If

        If txtcpyBioConst.Text = "" Then
            txtcpyBioConst.Text = "0"
        End If

        If txtcpyBMP.Text = "" Then
            txtcpyBMP.Text = "0"
        End If

        If txtcpyFlight.Text = "" Then
            txtcpyFlight.Text = "0"
        End If

        If txtcpyHistoric.Text = "" Then
            txtcpyHistoric.Text = "0"
        End If

                requestno = Convert.ToInt32(NewCase.InsertNewRequest(txtDateIn.Text, txtDateBy.Text, _
        ddlRush.SelectedValue, ddlOffice.SelectedValue, txtProjName.Text, txtCty.Text, _
        txtDeltek.Text, txtHours.Text, ddlPM.SelectedIndex, ddlPoC.SelectedIndex, _
        ddlReqBy.SelectedIndex, txtID.Text, "New", ddlBioRes.SelectedValue.ToString, _
        ddlBioConst.SelectedValue.ToString, ddlWetlnd.SelectedValue.ToString, _
        ddlArborist.SelectedValue.ToString, ddlMonitoring.SelectedValue.ToString, _
        ddlOther.SelectedValue.ToString, ddlPCN.SelectedValue.ToString, _
        ddlPublic.SelectedValue.ToString, ddlSec7.SelectedValue.ToString, _
        ddlOnsiteAA.SelectedValue.ToString, ddlOffsiteAA.SelectedValue.ToString, _
        ddlPMP.SelectedValue.ToString, ddlCEQA.SelectedValue.ToString, _
        ddlSWPPP.SelectedValue.ToString, ddlWQC.SelectedValue.ToString, _
        ddlSAA.SelectedValue.ToString, txtcpySite.Text, txtcpySoils.Text, txtcpyCNDDB.Text, _
        txtcpyWet.Text, txtcpyPropMap.Text, txtcpyBioConst.Text, txtcpyBMP.Text, _
        txtcpyFlight.Text, txtcpyHistoric.Text, ddlprnSite.SelectedValue.ToString, _
        ddlprnSoils.SelectedValue.ToString, ddlprnCNDDB.SelectedValue.ToString, _
        ddlprnWetlnd.SelectedValue.ToString, ddlprnPropMap.SelectedValue.ToString, _
        ddlprnBioConst.SelectedValue.ToString, ddlprnBMP.SelectedValue.ToString, _
        ddlprnFlight.SelectedValue.ToString, ddlprnHistoric.SelectedValue.ToString, _
        ddltypeSite.SelectedValue.ToString, ddltypeSoils.SelectedValue.ToString, _
        ddltypeCNDDB.SelectedValue.ToString, ddltypeWetlnd.SelectedValue.ToString, _
        ddltypePropMap.SelectedValue.ToString, ddltypeBioConst.SelectedValue.ToString, _
        ddltypeBMP.SelectedValue.ToString, ddltypeFlight.SelectedValue.ToString, _
        ddltypeHistoric.SelectedValue.ToString, chkAerialField.Checked.GetType, _
        chkCAD.Checked.GetType, chkGPSBckgrnd.Checked.GetType, chkDataCD.Checked.GetType, _
        chkDigi2clnt.Checked.GetType, chkOtherfield.Checked.GetType, chkDigCad.Checked.GetType, _
        chkParcel.Checked.GetType, chkAerial.Checked.GetType, chkGPS.Checked.GetType, _
        chkOther.Checked.GetType, txtNotes.Text))        

         Label5.Text = "Request # " & requestno & " has been entered successfully. You will receive an email shortly."

        If ddlRush.SelectedIndex = 2 Then

            'Add the sender, and recepients. CC the user.
            m.From = New MailAddress("GIS@foothill.com")
            m.To.Add("jsanchez@Foothill.com")

            'Add the subject to the email so it gets by the SPAM filter.
            m.Subject = "Request # for " & txtProjName.Text & " - RUSH."
            m.Body = "The request from " & txtEmpName.Text & " is due " & txtDateBy.Text & " and is expected to take " & txtHours.Text & "."
           
             'Make sure the body of the email is HTML
            m.IsBodyHtml = True
            m.Priority = MailPriority.High

            'Send the message
            Dim smtp As New SmtpClient("192.168.254.13")
            smtp.Send(m)
            cmdSubmit.PostBackUrl = "~/Default.aspx"

        ElseIf ddlRush.SelectedIndex = 1 Then
            With m
                'Add the sender, and recepients. CC the user.
                .From = New MailAddress("GISAdmin@foothill.com")
                .To.Add("jsanchez@foothill.com")

                'Add the subject to the email so it gets by the SPAM filter.
                .Subject = "Request # has been submitted"
                .Body = "The request from " & txtEmpName.Text & " is due " & txtDateBy.Text & " and is expected to take " & txtHours.Text & "."

                'Make sure the body of the email is HTML
                .IsBodyHtml = True
                .Priority = MailPriority.Normal

                'Send the message
                Dim smtp As New SmtpClient("192.168.254.13")
                smtp.Send(m)
                cmdSubmit.PostBackUrl = "~/Default.aspx"
            End With

        End If
    End Sub

    Protected Sub ddlReqBy_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlReqBy.SelectedIndexChanged
        Dim email As New taPM
        txtReqEmail.Text = email.GetPM(ddlReqBy.SelectedIndex).pmEmail
        txtEmpName.Text = email.GetPM(ddlReqBy.SelectedIndex).pmName
    End Sub
End Class
0
Comment
Question by:sithman17
[X]
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
5 Comments
 
LVL 5

Accepted Solution

by:
hfpon earned 250 total points
ID: 17854894
Create a new column in your sql table (for example chk1column)
Change the data type to bit.


In your design view, add a sql datasource

                    <asp:SqlDataSource ID="InsertCheckBox" runat="server" ConnectionString="<%$ ConnectionStrings:ASPNETDBConnection %>"
                        InsertCommand="INSERT INTO [Table] ([chk1column], [othercolumn1], [othercolumn2]) VALUES (@chk1column, @othercolumn1, @othercolumn2)"
                        ProviderName="<%$ ConnectionStrings:ASPNETDBConnection.ProviderName %>">
                    </asp:SqlDataSource>

In your source view. Under your "submit" code add the following

        InsertCheckBox.InsertParameters.Add("chk1column", CheckBox1.Checked)
        InsertCheckBox.InsertParameters.Add("othercolumn1", textbox1.text)
        InsertCheckBox.InsertParameters.Add("othercolumn2", textbox2.text)
        InsertCheckBox.Insert()
0
 
LVL 16

Assisted Solution

by:Edwin_C
Edwin_C earned 250 total points
ID: 17854950
Firstly SQL Server does not have the boolean data type and so you cannot save a boolean value as true/false directly.  You can use a char(1) to store 'Y' or 'N'.  Alternatively you can use a bit or tinyint type to store 1 or 0.  This is your choice.

Suppose you use a tinyint field to store the boolean value.  Then you can do the conversion in your data access layer like this.

Public Sub AddNewRecord(name as string, isYesNo as boolean)
  Dim cmd as SqlCommand
  cmd = new SqlCommand()
  cmd.Commandtext = "INSERT ........"
  cmd.Connection = myDBConnection
  cmd.Parameters.AddWithValue("name", name)
  cmd.Parameters.AddWithValue("isYesNo", iif(isYesNo, 1, 0))
  myDBConnection.Open()
  cmd.ExecuteNonQuery()
  myDBConnection.Close()
End Sub
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

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

One of the pain points with developing AJAX, JavaScript, JQuery, and other client-side behaviors is that JavaScript doesn’t allow for cross domain request for pulling content. For example, JavaScript code on www.johnchapman.name could not pull conte…
In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
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…

705 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