Hi Tek-Tips
I'm using the Microsoft Web Matrix to build this little app i'm doing. I have no idea why it isn't working, it was working before, I don't know what I did, and it isn't working now. So here we go.
I'm trying to update records in a datagrid, nice and simple...here's the function.
Function Update(ByVal iD As Integer, ByVal shortDesc As String, ByVal salaryRange As String, ByVal benefits As String, ByVal longDesc As String) As Integer
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\Joel's Work\"& _
"jobs.mdb"
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim queryString As String = "UPDATE [jobs] SET [ShortDesc]=@ShortDesc, [SalaryRange]=@SalaryRange, [Benefits]="& _
"@Benefits, [LongDesc]=@LongDesc WHERE ([jobs].[ID] = @ID)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dbParam_iD As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iD.ParameterName = "@ID"
dbParam_iD.Value = iD
dbParam_iD.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iD)
Dim dbParam_shortDesc As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_shortDesc.ParameterName = "@ShortDesc"
dbParam_shortDesc.Value = shortDesc
dbParam_shortDesc.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_shortDesc)
Dim dbParam_salaryRange As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_salaryRange.ParameterName = "@SalaryRange"
dbParam_salaryRange.Value = salaryRange
dbParam_salaryRange.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_salaryRange)
Dim dbParam_benefits As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_benefits.ParameterName = "@Benefits"
dbParam_benefits.Value = benefits
dbParam_benefits.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_benefits)
Dim dbParam_longDesc As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_longDesc.ParameterName = "@LongDesc"
dbParam_longDesc.Value = longDesc
dbParam_longDesc.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_longDesc)
Dim rowsAffected As Integer = 0
dbConnection.Open
Try
rowsAffected = dbCommand.ExecuteNonQuery
Finally
dbConnection.Close
End Try
Return rowsAffected
End Function
here's the sub routine to call that function...
Sub entries_Update (sender as Object, e as DataGridCommandEventArgs)
Dim iD as Integer = e.Item.Cells(1).Text
Dim shortdescTextBox as TextBox = e.Item.Cells(3).Controls(0)
Dim salaryrangeTextBox as TextBox = e.Item.Cells(4).Controls(0)
Dim benefitsTextBox as TextBox = e.Item.Cells(5).Controls(0)
Dim longdescTextBox as TextBox = e.Item.Cells(6).Controls(0)
Update(iD, shortdescTextBox.Text, salaryrangeTextBox.text, benefitsTextBox.Text, longdescTextBox.Text)
entries.EditItemIndex = -1
entries.DataSource=getjobs()
entries.Databind()
End Sub
and here is my datagrid...
<asp
ataGrid id="entries" runat="server" OnDeleteCommand="entries_delete" AutoGenerateColumns="False" OnEditCommand="entries_Edit" OnCancelCommand="entries_Cancel" OnUpdateCommand="entries_Update">
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" HeaderText="Admin" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
<asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="date" ReadOnly="True" HeaderText="Date" DataFormatString="{0:g}"></asp:BoundColumn>
<asp:BoundColumn DataField="shortdesc" HeaderText="Job Title"></asp:BoundColumn>
<asp:BoundColumn DataField="salaryrange" HeaderText="Salary Range"></asp:BoundColumn>
<asp:BoundColumn DataField="benefits" HeaderText="Benefits"></asp:BoundColumn>
<asp:BoundColumn DataField="longdesc" HeaderText="Long Description"></asp:BoundColumn>
<asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp
ataGrid>
I click edit...I fill in something into one of the boxes...I click update, and it doesn't update. It just goes right back to what I had before...so, eg.
I have blah blah blah blah in the boxes
I erase all the info and hit update
I see blah blah blah blah still there.
If you guys can see something i'm missing, that would be awesome, i'm sure it's something tiny i'm totally overlooking.
thanks
Caden
I'm using the Microsoft Web Matrix to build this little app i'm doing. I have no idea why it isn't working, it was working before, I don't know what I did, and it isn't working now. So here we go.
I'm trying to update records in a datagrid, nice and simple...here's the function.
Function Update(ByVal iD As Integer, ByVal shortDesc As String, ByVal salaryRange As String, ByVal benefits As String, ByVal longDesc As String) As Integer
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\Joel's Work\"& _
"jobs.mdb"
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim queryString As String = "UPDATE [jobs] SET [ShortDesc]=@ShortDesc, [SalaryRange]=@SalaryRange, [Benefits]="& _
"@Benefits, [LongDesc]=@LongDesc WHERE ([jobs].[ID] = @ID)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dbParam_iD As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iD.ParameterName = "@ID"
dbParam_iD.Value = iD
dbParam_iD.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iD)
Dim dbParam_shortDesc As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_shortDesc.ParameterName = "@ShortDesc"
dbParam_shortDesc.Value = shortDesc
dbParam_shortDesc.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_shortDesc)
Dim dbParam_salaryRange As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_salaryRange.ParameterName = "@SalaryRange"
dbParam_salaryRange.Value = salaryRange
dbParam_salaryRange.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_salaryRange)
Dim dbParam_benefits As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_benefits.ParameterName = "@Benefits"
dbParam_benefits.Value = benefits
dbParam_benefits.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_benefits)
Dim dbParam_longDesc As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_longDesc.ParameterName = "@LongDesc"
dbParam_longDesc.Value = longDesc
dbParam_longDesc.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_longDesc)
Dim rowsAffected As Integer = 0
dbConnection.Open
Try
rowsAffected = dbCommand.ExecuteNonQuery
Finally
dbConnection.Close
End Try
Return rowsAffected
End Function
here's the sub routine to call that function...
Sub entries_Update (sender as Object, e as DataGridCommandEventArgs)
Dim iD as Integer = e.Item.Cells(1).Text
Dim shortdescTextBox as TextBox = e.Item.Cells(3).Controls(0)
Dim salaryrangeTextBox as TextBox = e.Item.Cells(4).Controls(0)
Dim benefitsTextBox as TextBox = e.Item.Cells(5).Controls(0)
Dim longdescTextBox as TextBox = e.Item.Cells(6).Controls(0)
Update(iD, shortdescTextBox.Text, salaryrangeTextBox.text, benefitsTextBox.Text, longdescTextBox.Text)
entries.EditItemIndex = -1
entries.DataSource=getjobs()
entries.Databind()
End Sub
and here is my datagrid...
<asp
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" HeaderText="Admin" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
<asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="date" ReadOnly="True" HeaderText="Date" DataFormatString="{0:g}"></asp:BoundColumn>
<asp:BoundColumn DataField="shortdesc" HeaderText="Job Title"></asp:BoundColumn>
<asp:BoundColumn DataField="salaryrange" HeaderText="Salary Range"></asp:BoundColumn>
<asp:BoundColumn DataField="benefits" HeaderText="Benefits"></asp:BoundColumn>
<asp:BoundColumn DataField="longdesc" HeaderText="Long Description"></asp:BoundColumn>
<asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp
I click edit...I fill in something into one of the boxes...I click update, and it doesn't update. It just goes right back to what I had before...so, eg.
I have blah blah blah blah in the boxes
I erase all the info and hit update
I see blah blah blah blah still there.
If you guys can see something i'm missing, that would be awesome, i'm sure it's something tiny i'm totally overlooking.
thanks
Caden