dlombardi
02-02-2005, 08:45 AM
I have added a template column to my datagrid and put checkbox in.
I want the user to make multiple selections and then write them to a database.
after the Items are checked they click a button I then iterate through the datagrid to see which items are checked. the value always comes back as false.
I have used this code before but it's not working now. Is there something wrong??
Help the code in question is BOLD
Try
Dim cm As New SqlClient.SqlCommand
Dim cn As New SqlClient.SqlConnection
Dim rowadd As DataRow
Dim i, x, y, z As Integer
Dim cb As New CheckBox
Dim dgi As DataGridItem
Dim tblTemp As New DataTable
Dim drTemp As DataRow
cn.ConnectionString = "Data Source=his-development;Initial Catalog=Discharge;User ID=sa;Password=developer"
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
cm.Connection = cn
cm.Parameters.Add("@ACCT", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@DESCR", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@DOSE", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@ROUTE", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@FC", SqlDbType.NVarChar, 50)
cm.CommandText = "INSERT INTO PTMED(ACCT, DESCR, DOSE, ROUTE, FC) VALUES(@ACCT,@DESCR ,@DOSE ,@ROUTE ,@FC )"
tblTemp.Columns.Add("ACCT")
tblTemp.Columns.Add("DESCR")
tblTemp.Columns.Add("DOSE")
tblTemp.Columns.Add("ROUTE")
tblTemp.Columns.Add("FC")
z = 0
For Each dgi In DG1.Items
cb = dgi.FindControl("chkBox")
If cb.Checked Then
drTemp = tblTemp.NewRow()
drTemp.Item(0) = txtAcct.Text
drTemp.Item(1) = dgi.Cells(0).Text
drTemp.Item(2) = dgi.Cells(1).Text
drTemp.Item(3) = dgi.Cells(2).Text
drTemp.Item(4) = dgi.Cells(3).Text
tblTemp.Rows.Add(drTemp)
z = z + 1
End If
Next
If z > 0 Then
For y = 0 To z - 1
cm.Parameters("@ACCT").Value = tblTemp.Rows(y).Item(0)
cm.Parameters("@DESCR").Value = tblTemp.Rows(y).Item(1)
cm.Parameters("@DOSE").Value = tblTemp.Rows(y).Item(2)
cm.Parameters("@ROUTE").Value = tblTemp.Rows(y).Item(3)
cm.Parameters("@FC").Value = tblTemp.Rows(y).Item(4)
cm.ExecuteNonQuery()
Next
End If
Catch ex As Exception
End Try
thank you for your help in advance
I want the user to make multiple selections and then write them to a database.
after the Items are checked they click a button I then iterate through the datagrid to see which items are checked. the value always comes back as false.
I have used this code before but it's not working now. Is there something wrong??
Help the code in question is BOLD
Try
Dim cm As New SqlClient.SqlCommand
Dim cn As New SqlClient.SqlConnection
Dim rowadd As DataRow
Dim i, x, y, z As Integer
Dim cb As New CheckBox
Dim dgi As DataGridItem
Dim tblTemp As New DataTable
Dim drTemp As DataRow
cn.ConnectionString = "Data Source=his-development;Initial Catalog=Discharge;User ID=sa;Password=developer"
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
cm.Connection = cn
cm.Parameters.Add("@ACCT", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@DESCR", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@DOSE", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@ROUTE", SqlDbType.NVarChar, 50)
cm.Parameters.Add("@FC", SqlDbType.NVarChar, 50)
cm.CommandText = "INSERT INTO PTMED(ACCT, DESCR, DOSE, ROUTE, FC) VALUES(@ACCT,@DESCR ,@DOSE ,@ROUTE ,@FC )"
tblTemp.Columns.Add("ACCT")
tblTemp.Columns.Add("DESCR")
tblTemp.Columns.Add("DOSE")
tblTemp.Columns.Add("ROUTE")
tblTemp.Columns.Add("FC")
z = 0
For Each dgi In DG1.Items
cb = dgi.FindControl("chkBox")
If cb.Checked Then
drTemp = tblTemp.NewRow()
drTemp.Item(0) = txtAcct.Text
drTemp.Item(1) = dgi.Cells(0).Text
drTemp.Item(2) = dgi.Cells(1).Text
drTemp.Item(3) = dgi.Cells(2).Text
drTemp.Item(4) = dgi.Cells(3).Text
tblTemp.Rows.Add(drTemp)
z = z + 1
End If
Next
If z > 0 Then
For y = 0 To z - 1
cm.Parameters("@ACCT").Value = tblTemp.Rows(y).Item(0)
cm.Parameters("@DESCR").Value = tblTemp.Rows(y).Item(1)
cm.Parameters("@DOSE").Value = tblTemp.Rows(y).Item(2)
cm.Parameters("@ROUTE").Value = tblTemp.Rows(y).Item(3)
cm.Parameters("@FC").Value = tblTemp.Rows(y).Item(4)
cm.ExecuteNonQuery()
Next
End If
Catch ex As Exception
End Try
thank you for your help in advance