Solved

Insert Dropdown, DateSelector, Column from Gridview into SQL Server

Posted on 2014-11-17
2
68 Views
Last Modified: 2015-07-29
I previously asked a question regarding a date field in a gridview to be inserted into my sql server. I realized that that the date was being selected from a dateselector, the next column is a dropdown selector field, the third is a value from my select query. I can insert the data if it were populated from the select statement but i'm having trouble inserting the dateselector and the dropdown box value from the gridview. My markup seems to fine since I'm able to view the gridview with the objects but can't seem to insert it in my SQL server in the code behind. Any help would be appreciated.

My Markup:

<asp:GridView ID="gvPrint" runat="server" AutoGenerateColumns="False" DataKeyNames="OrderID" DataSourceID="gvAll" Font-Names="Calibri" Font-Size="X-Small" Width="100%">
                    <Columns>
                        <asp:TemplateField HeaderText="Select">
                            <ItemTemplate>
                                <asp:CheckBox ID="chk" runat="server" />
                            </ItemTemplate>
                            <HeaderStyle HorizontalAlign="Center" />
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Print Date">
                            <ItemTemplate>
                                <dx:ASPxDateEdit ID="ASPxDateEdit1" runat="server" Theme="DevEx" Width="80px" AutoPostBack="true">
                                </dx:ASPxDateEdit>
                            </ItemTemplate>
                            <HeaderStyle HorizontalAlign="Center" />
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Printer">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="sqlPrinters" DataTextField="Printer" DataValueField="Printer" AutoPostBack="true">
                                </asp:DropDownList>
                                <asp:SqlDataSource ID="sqlPrinters" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" SelectCommand="SELECT [Printer] FROM [Printer]" ></asp:SqlDataSource>
                            </ItemTemplate>
                            <HeaderStyle HorizontalAlign="Center" />
                        </asp:TemplateField>
                        <asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" >
                        <HeaderStyle HorizontalAlign="Center" />
                        <ItemStyle HorizontalAlign="Center" />
                        </asp:BoundField>

Open in new window


My Code Behind:

Protected Sub btnSchedule_Click(sender As Object, e As EventArgs) Handles btnSchedule.Click
        Dim dt As New DataTable()
        dt.Columns.AddRange(New DataColumn(2) {New DataColumn("PrintDate", GetType(DateTime)), New DataColumn("Printer", GetType(String)), New DataColumn("OrderID", GetType(Integer))})
        For Each Row As GridViewRow In gvPrint.Rows
            If TryCast(Row.FindControl("chk"), CheckBox).Checked Then
                Dim PrintDate As DateTime
                Dim DateValid As [Boolean] = DateTime.TryParse(Row.Cells(1).Text, PrintDate)
                Dim Printer As String = Row.Cells(2).Text
                Dim OrderID As Integer = Integer.Parse(Row.Cells(3).Text)
                dt.Rows.Add(PrintDate, Printer, OrderID)
            End If
        Next
        If dt.Rows.Count > 0 Then
            Dim conString As String = ConfigurationManager.ConnectionStrings("ApplicationServices").ConnectionString
            Using con As New SqlConnection(conString)

                Using BulkCopy As New SqlBulkCopy(con)

                    BulkCopy.DestinationTableName = "dbo.PrinterSchedule"

                    BulkCopy.ColumnMappings.Add("PrintDate", "PrintDate")
                    BulkCopy.ColumnMappings.Add("Printer", "Printer")
                    BulkCopy.ColumnMappings.Add("OrderID", "OrderID")
                    con.Open()
                    BulkCopy.WriteToServer(dt)
                    con.Close()
                End Using
            End Using
        End If
    End Sub

Open in new window

0
Comment
Question by:Southern_Gentleman
2 Comments
 
LVL 4

Accepted Solution

by:
ItWorked earned 500 total points
ID: 40449516
Are you talking about example as of such? Here
0
 

Author Comment

by:Southern_Gentleman
ID: 40456430
Sort of what I was looking for. I'm looking at taking three columns from my gridview and inserting it in a table that I created. The first column has checkboxes. This selects which rows to be bulk inserted into my table. The second column has a date select. the third is a dropdown box. the forth column is the order number. On a click event button, any checkbox selected will have the dateselect value, dropdown box value and ordered inserted into my table. I'm able to Insert the order number since that is from my select statement. I just can't seem to insert the values from my dateselect and dropdown box. So i'm not really wanting to update or edit any information from my gridview. I'm just looking to insert it into my table.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

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…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…

895 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now