私は でGridview
満たされたdataTable
、で満たされた を持っていDataAdapter
ます。これが、 grid が に最初に読み込まれる方法Page_Load
です。検索機能を追加するには、同じことを行いTextBox.Text
ますが、パラメーターとしてSELECT... LIKE ...
ステートメントに渡します。編集機能 (すべての行にボタン) を追加するにdataTable
は、 dataTable
. 問題は、その値を維持する (永続化する) 方法がわからないことと、dataTable
編集ボタンを押したときに列が 0 であるため、編集するものが表示されないことです。を使用しているために発生すると思いますが、Using
おそらく のdataTable
後にクリーンアップされてEnd Using
います。
その場合、どうすれば直せますか?削除することを考えmiconn.Close()
ましたが、何も解決しません。実際、接続がまだ開いているかどうかはわかりませんEnd Using
。
コード:
Dim con As New Connection
Dim table As New DataTable()
Private Sub fill_grid()
Using miconn As New SqlConnection(con.GetConnectionString())
Dim sql As String = "SELECT area,lider_usuario FROM AREA"
Using command As New SqlCommand(sql, miconn)
Using ad As New SqlDataAdapter(command)
ad.Fill(table)
GridView1.DataSource = table
GridView1.DataBind()
'miconn.Close()
End Using
End Using
End Using
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
fill_grid()
End If
End Sub
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim miCon As New Connection
Using miconn As New SqlConnection(miCon.GetConnectionString())
Dim sql As String = "SELECT area,lider_usuario FROM AREA WHERE area LIKE @area"
Using command As New SqlCommand(sql, miconn)
command.Parameters.Clear()
command.Parameters.Add("@area", SqlDbType.VarChar).Value = "%" + TextBox1.Text + "%"
Using ad As New SqlDataAdapter(command)
ad.Fill(table)
GridView1.DataSource = table
GridView1.DataBind()
'miconn.Close()
End Using
End Using
End Using
End Sub
Protected Sub EditRow(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
GridView1.EditIndex = e.NewEditIndex
GridView1.DataSource = table
GridView1.DataBind()
End Sub
Protected Sub CancelEditRow(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
GridView1.EditIndex = -1
GridView1.DataSource = table
GridView1.DataBind()
End Sub