Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Can't update records in my datagrid

Status
Not open for further replies.

PushCode

Programmer
Dec 17, 2003
573
US
I'm getting the error 'Input string was not in a correct format.' when I try to update a record in my datagrid.

Can anyone see what I'm doing wrong in my code?

Input string was not in a correct format.
<code>
' ------- UPDATE CODE ------- '
Sub DataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)

' update the database with the new values

' get the edit text boxes
Dim Region As Integer = CType(e.Item.Cells(2).Controls(0), TextBox).Text
Dim Board As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
Dim boardID As Integer = CType(e.Item.Cells(4).Controls(0), TextBox).Text
Dim FirstName As String = CType(e.Item.Cells(5).Controls(0), TextBox).Text
Dim LastName As String = CType(e.Item.Cells(6).Controls(0), TextBox).Text
Dim Designations As String = CType(e.Item.Cells(7).Controls(0), TextBox).Text
Dim Title As String = CType(e.Item.Cells(8).Controls(0), TextBox).Text
Dim Company As String = CType(e.Item.Cells(9).Controls(0), TextBox).Text
Dim Address As String = CType(e.Item.Cells(10).Controls(0), TextBox).Text
Dim Address2 As String = CType(e.Item.Cells(11).Controls(0), TextBox).Text
Dim City As String = CType(e.Item.Cells(12).Controls(0), TextBox).Text
Dim [State] As String = CType(e.Item.Cells(13).Controls(0), TextBox).Text
Dim Zip As Integer = CType(e.Item.Cells(14).Controls(0), TextBox).Text
Dim OfficePhone As String = CType(e.Item.Cells(15).Controls(0), TextBox).Text
Dim HomePhone As String = CType(e.Item.Cells(16).Controls(0), TextBox).Text
Dim Fax As String = CType(e.Item.Cells(17).Controls(0), TextBox).Text
Dim TollFree As String = CType(e.Item.Cells(18).Controls(0), TextBox).Text
Dim Mobile As String = CType(e.Item.Cells(19).Controls(0), TextBox).Text
Dim Website As String = CType(e.Item.Cells(20).Controls(0), TextBox).Text
Dim Email As String = CType(e.Item.Cells(21).Controls(0), TextBox).Text
Dim id As String
id = DataGrid1.Items(e.Item.ItemIndex).Cells(7).Text

' TODO: update the Command value for your application

Dim myConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim UpdateCommand As SqlCommand = new SqlCommand()
UpdateCommand.Connection = myConnection

If AddingNew = True Then
UpdateCommand.CommandText = "INSERT INTO localBrdLeadership(Region, Board, boardID, FirstName, LastName, Designations, Title, Company, Address, Address2, City, [State], Zip, OfficePhone, HomePhone, Fax, TollFree, Mobile, Website, Email) VALUES (@Region, @Board, @boardID, @FirstName, @LastName, @Designations, @Title, @Company, @Address, @Address2, @City, @State, @Zip, @OfficePhone, @HomePhone, @Fax, @TollFree, @Mobile, @Website, @Email)"
Else
UpdateCommand.CommandText = "UPDATE localBrdLeadership SET Region=@Region, Board=@Board, boardID=@boardID, FirstName=@FirstName, LastName=@LastName, Designations=@Designations, Title=@Title, Company=@Company, Address=@Address, Address2=@Address2, City=@City, [State]=@State, Zip=@Zip, OfficePhone=@OfficePhone, HomePhone=@HomePhone, Fax=@Fax, TollFree=@TollFree, Mobile=Mobile Website=@Website, Email=@Email WHERE id=@id"
UpdateCommand.Parameters.Add("@id", SqlDbType.Int, 4).Value = id
End If

UpdateCommand.Parameters.Add("@Region", SqlDbType.Int, 4).Value = Region
UpdateCommand.Parameters.Add("@Board", SqlDbType.VarChar, 255).Value = Board
UpdateCommand.Parameters.Add("@boardID", SqlDbType.Int, 4).Value = boardID
UpdateCommand.Parameters.Add("@FirstName", SqlDbType.VarChar, 255).Value = FirstName
UpdateCommand.Parameters.Add("@LastName", SqlDbType.VarChar, 255).Value = LastName
UpdateCommand.Parameters.Add("@Designations", SqlDbType.VarChar, 255).Value = Designations
UpdateCommand.Parameters.Add("@Title", SqlDbType.VarChar, 255).Value = Title
UpdateCommand.Parameters.Add("@Company", SqlDbType.VarChar, 255).Value = Company
UpdateCommand.Parameters.Add("@Address", SqlDbType.VarChar, 255).Value = Address
UpdateCommand.Parameters.Add("@Address2", SqlDbType.VarChar, 255).Value = Address2
UpdateCommand.Parameters.Add("@City", SqlDbType.VarChar, 255).Value = City
UpdateCommand.Parameters.Add("@State", SqlDbType.VarChar, 255).Value = [State]
UpdateCommand.Parameters.Add("@Zip", SqlDbType.Int, 4).Value = Zip
UpdateCommand.Parameters.Add("@OfficePhone", SqlDbType.VarChar, 255).Value = OfficePhone
UpdateCommand.Parameters.Add("@HomePhone", SqlDbType.VarChar, 255).Value = HomePhone
UpdateCommand.Parameters.Add("@Fax", SqlDbType.VarChar, 255).Value = Fax
UpdateCommand.Parameters.Add("@TollFree", SqlDbType.VarChar, 255).Value = TollFree
UpdateCommand.Parameters.Add("@Mobile", SqlDbType.VarChar, 255).Value = Mobile
UpdateCommand.Parameters.Add("@Website", SqlDbType.VarChar, 255).Value = Website
UpdateCommand.Parameters.Add("@Email", SqlDbType.VarChar, 255).Value = Email

' execute the command
Try
myConnection.Open()
UpdateCommand.ExecuteNonQuery()

Catch ex as Exception
Message.Text = ex.ToString()

Finally
myConnection.Close()

End Try

' Resort the grid for new records
If AddingNew = True Then
DataGrid1.CurrentPageIndex = 0
AddingNew = false
End If

' rebind the grid
DataGrid1.EditItemIndex = -1
BindGrid()

End Sub</code>

And here's the datagrid code:
<code><form runat="server">
<asp:datagrid id="DataGrid1" runat="server" width="80%" CellSpacing="1" GridLines="None"
CellPadding="3" BackColor="White" ForeColor="Black" OnPageIndexChanged="DataGrid_Page"
PageSize="10" AllowPaging="true" OnDeleteCommand="DataGrid_Delete" OnCancelCommand="DataGrid_Cancel"
OnUpdateCommand="DataGrid_Update" OnEditCommand="DataGrid_Edit" OnItemCommand="DataGrid_ItemCommand"
OnItemDataBound="DataGrid1_OnItemDataBound" DataKeyField="id" ItemStyle-BackColor="#EFEFEF"
AlternatingItemStyle-BackColor="#F5F5F5" AutoGenerateColumns="False" ShowHeader="true">
<HeaderStyle font-bold="True" HorizontalAlign="Center" forecolor="white" backcolor="#6699CC"></HeaderStyle>
<PagerStyle horizontalalign="Left" backcolor="#C6C3C6" mode="NumericPages"></PagerStyle>
<Columns>
<asp:EditCommandColumn HeaderText="Edit / Save" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" ButtonType="LinkButton" UpdateText="Save" CancelText="Cancel" EditText="Edit" ItemStyle-Font-Size="smaller" ItemStyle-Width="10%"></asp:EditCommandColumn>
<asp:templatecolumn HeaderText="Delete" ItemStyle-Wrap="false" HeaderStyle-Wrap="false">
<itemtemplate>
<asp:linkbutton id="deleteButton" runat="server" text="Delete" commandname="Delete" />
</itemtemplate>
</asp:templatecolumn>
<asp:boundcolumn DataField="Region" ReadOnly="false" HeaderText="Region" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" />
<asp:boundcolumn DataField="Board" ReadOnly="false" HeaderText="Board" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="boardID" ReadOnly="false" HeaderText="boardID" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="FirstName" ReadOnly="false" HeaderText="FirstName" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="LastName" ReadOnly="false" HeaderText="LastName" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Designations" ReadOnly="false" HeaderText="Designations" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Title" ReadOnly="false" HeaderText="Title" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Company" ReadOnly="false" HeaderText="Company" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Address" ReadOnly="false" HeaderText="Address" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Address2" ReadOnly="false" HeaderText="Address2" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="City" ReadOnly="false" HeaderText="City" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="State" ReadOnly="false" HeaderText="State" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Zip" ReadOnly="false" HeaderText="Zip" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="OfficePhone" ReadOnly="false" HeaderText="OfficePhone" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="HomePhone" ReadOnly="false" HeaderText="HomePhone" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Fax" ReadOnly="false" HeaderText="Fax" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="TollFree" ReadOnly="false" HeaderText="TollFree" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Mobile" ReadOnly="false" HeaderText="Mobile" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Website" ReadOnly="false" HeaderText="Website" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="Email" ReadOnly="false" HeaderText="Email" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
<asp:boundcolumn DataField="id" ReadOnly="true" HeaderText="ID" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" />
</Columns>
</asp:datagrid>
<br />
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')"><img src="../assets/pics/add.gif" width="11" height="11" border="0"></a>
<asp:LinkButton id="LinkButton1" onclick="AddNew_Click" runat="server" Font-Size="smaller" Text="Add New Record"></asp:LinkButton>
<br />
<br />
<asp:Label id="Message" runat="server" width="80%" enableviewstate="false" forecolor="red"></asp:Label>
<input type="hidden" name="custom_deleteID" value="">
<input type="hidden" name="custom_action" value="">
</form></code>

Any assistance would be great. Thanks.
 
Just for fun, try hardcoding in values for Region, boardID, Zip, and any other variables that are integers instead of taking the text box values and see if the errors go away.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top