I am using a dropdown box to query a database and populate a datagrid.
Everything works except the update button. When the update button is
pressed after entering some data, the page reloads but the data is not
there. dgpm is the datagrid ID. ddtech is the dropdown box ID which is
passed to the getbts select function and used for the datagrids datasource.
Could someone please take a look at the code and tell me what I need to
change or add.


Here is the code and thanks in advance.

Sub Page_load(sender As Object, e As EventArgs)
If Not Page.IsPostBack then
dgpm.datasource=getbts(ddtech.selecteditem.value)
dgpm.databind()
End if
End Sub



Function getbts(ByVal tech As String) As System.Data.IDataReader
Dim connectionString As String =
"Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data
Source=C:\Documents an"& _
"d Settings\rjay\Desktop\fpltmdb.mdb"
Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(connectionString )

Dim queryString As String = "SELECT [PMDataMay04].* FROM
[PMDataMay04] WHERE ([PMDataMay04].[Tech] = @Tech)"
Dim dbCommand As System.Data.IDbCommand = New
System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_tech As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_tech.ParameterName = "@Tech"
dbParam_tech.Value = tech
dbParam_tech.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_tech)

dbConnection.Open
Dim dataReader As System.Data.IDataReader =
dbCommand.ExecuteReader(System.Data.CommandBehavio r.CloseConnection)

Return dataReader
End Function




Sub dgpm_Edit(Sender as Object, e as DataGridCommandEventArgs)
dgpm.EditItemIndex = e.Item.ItemIndex

dgpm.Datasource = getbts(ddtech.selectedItem.Value)
dgpm.DataBind()
End Sub




Sub dgpm_Update(Sender as Object, e as DataGridCommandEventArgs)

Dim BTS as Integer = e.Item.Cells(1).Text
Dim SiteNameTextBox as TextBox = e.Item.Cells(2).controls(0)
Dim TechTextBox as TextBox = e.Item.Cells(3).Controls(0)
Dim MonthlyTextBox as TextBox = e.Item.Cells(4).Controls(0)
Dim GenHoursTextBox as TextBox = e.Item.Cells(5).Controls(0)
Dim GenFuelTextBox as TextBox = e.Item.Cells(6).Controls(0)
Dim QuartPMTextBox as TextBox = e.Item.Cells(7).Controls(0)
Dim AnnualBattTextBox as TextBox = e.Item.Cells(8).Controls(0)
Dim AVGSiemensTextBox as TextBox = e.Item.Cells(9).Controls(0)
Dim PerHiJarTextBox as TextBox = e.Item.Cells(10).Controls(0)
Dim ATPSweepTextBox as TextBox = e.Item.Cells(11).Controls(0)
Dim AnnualMwaveTextBox as TextBox =
e.Item.Cells(12).Controls(0)



Updatepm (BTS, SiteNameTextBox.Text, Techtextbox.Text,
MonthlyTextBox.text, GenHoursTextBox.Text, GenFuelTextBox.Text,
QuartPMTextBox.Text, AnnualBattTextBox.Text, AVGSiemensTextBox.Text,
PerHiJarTextBox.Text, ATPSweepTextBox.Text, AnnualMwaveTextBox.Text)


dgpm.EditItemIndex = -1

dgpm.Datasource = getbts(ddtech.selectedItem.Value)
dgpm.DataBind()

End Sub




Sub dgpm_Cancel(Sender as Object, e as DataGridCommandEventArgs)
dgpm.EditItemIndex = -1

dgpm.Datasource = getbts(ddtech.selectedItem.Value)
dgpm.DataBind()
End Sub




Function updatepm(ByVal bTS As Integer, ByVal site_Name As String,
ByVal tech As String, ByVal monthly_PM_Date As String, ByVal
generator_Hours As String, ByVal generator_Fuel As String, ByVal
quart_PM As String, ByVal annual_Batt As String, ByVal
string_Avg_Siemens As String, ByVal string_Percent_HI_Jar As String,
ByVal aTP_Sweep As String, ByVal annual_Mwave As String) As Integer
Dim connectionString As String =
"Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data
Source=C:\Documents an"& _
"d Settings\rjay\Desktop\fpltmdb.mdb"
Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(connectionString )

Dim queryString As String = "UPDATE [PMDataMay04] SET
[String_Percent_HI_Jar]=@String_Percent_HI_Jar, [Tech]=@"& _
"Tech, [Annual_Batt]=@Annual_Batt, [Site_Name]=@Site_Name,
[Generator_Fuel]=@Gene"& _
"rator_Fuel, [String_Avg_Siemens]=@String_Avg_Siemens,
[Annual_Mwave]=@Annual_Mwa"& _
"ve, [Quart_PM]=@Quart_PM, [Generator_Hours]=@Generator_Hours,
[Monthly_PM_Date]="& _
"@Monthly_PM_Date, [ATP_Sweep]=@ATP_Sweep WHERE ([PMDataMay04].[BTS] =
@BTS)"
Dim dbCommand As System.Data.IDbCommand = New
System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_bTS As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_bTS.ParameterName = "@BTS"
dbParam_bTS.Value = bTS
dbParam_bTS.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_bTS)
Dim dbParam_site_Name As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_site_Name.ParameterName = "@Site_Name"
dbParam_site_Name.Value = site_Name
dbParam_site_Name.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_site_Name)
Dim dbParam_tech As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_tech.ParameterName = "@Tech"
dbParam_tech.Value = tech
dbParam_tech.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_tech)
Dim dbParam_monthly_PM_Date As System.Data.IDataParameter =
New System.Data.OleDb.OleDbParameter
dbParam_monthly_PM_Date.ParameterName = "@Monthly_PM_Date"
dbParam_monthly_PM_Date.Value = monthly_PM_Date
dbParam_monthly_PM_Date.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_monthly_PM_Date)
Dim dbParam_generator_Hours As System.Data.IDataParameter =
New System.Data.OleDb.OleDbParameter
dbParam_generator_Hours.ParameterName = "@Generator_Hours"
dbParam_generator_Hours.Value = generator_Hours
dbParam_generator_Hours.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_generator_Hours)
Dim dbParam_generator_Fuel As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_generator_Fuel.ParameterName = "@Generator_Fuel"
dbParam_generator_Fuel.Value = generator_Fuel
dbParam_generator_Fuel.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_generator_Fuel)
Dim dbParam_quart_PM As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_quart_PM.ParameterName = "@Quart_PM"
dbParam_quart_PM.Value = quart_PM
dbParam_quart_PM.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_quart_PM)
Dim dbParam_annual_Batt As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_annual_Batt.ParameterName = "@Annual_Batt"
dbParam_annual_Batt.Value = annual_Batt
dbParam_annual_Batt.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_annual_Batt)
Dim dbParam_string_Avg_Siemens As System.Data.IDataParameter =
New System.Data.OleDb.OleDbParameter
dbParam_string_Avg_Siemens.ParameterName =
"@String_Avg_Siemens"
dbParam_string_Avg_Siemens.Value = string_Avg_Siemens
dbParam_string_Avg_Siemens.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_string_Avg_Siemen s)
Dim dbParam_string_Percent_HI_Jar As
System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_string_Percent_HI_Jar.ParameterName =
"@String_Percent_HI_Jar"
dbParam_string_Percent_HI_Jar.Value = string_Percent_HI_Jar
dbParam_string_Percent_HI_Jar.DbType =
System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_string_Percent_HI _Jar)
Dim dbParam_aTP_Sweep As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_aTP_Sweep.ParameterName = "@ATP_Sweep"
dbParam_aTP_Sweep.Value = aTP_Sweep
dbParam_aTP_Sweep.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_aTP_Sweep)
Dim dbParam_annual_Mwave As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter
dbParam_annual_Mwave.ParameterName = "@Annual_Mwave"
dbParam_annual_Mwave.Value = annual_Mwave
dbParam_annual_Mwave.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_annual_Mwave)

Dim rowsAffected As Integer = 0
dbConnection.Open
Try
rowsAffected = dbCommand.ExecuteNonQuery
Finally
dbConnection.Close
End Try

Return rowsAffected
End Function


Sub ddtech_SelectedIndexChanged(sender As Object, e As EventArgs)
dgpm.datasource = getbts(ddtech.selectedItem.Value)
dgpm.DataBind()
End Sub

Sub dgpm_SelectedIndexChanged(sender As Object, e As EventArgs)

End Sub