|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Datagridview requeryAs a learning exercise I have created a simple form which contains a DataGridView, a Textbox and a Command Button. The DGW is populated from a stored procedure which optionally takes a parameter to filter the data retrieved. When the form is first loaded, the DGV is populated from the procedure with no parameter - I've managed to get this bit working fine. What I'd like to happen next is for the user to enter a reference ("visit") in the text box and when the user clicks the command button, the data in the DGV is refreshed as per the procedure executing with the parameter. However, I'm unable to do this, I just can't get the data to refresh. I'm not sure at what stage I should be refreshing the data and who I achieve it... My form consists of a single DGV, one textbox and one command button. I haven't included any error handling or such like. I'd be much appreciative if someone could give me a few pointers as to how to get the form to refresh as described above. I hope I've managed to explain this clearly enough! Many thanks Chris. ************************** Public Class Form1 Dim cnn As New SqlClient.SqlConnection( _ "Data Source=COMPUTER19\CSTEST;" & _ "Initial Catalog=ShipsPerf_Test;" & _ "Integrated Security=True") Dim bs As New BindingSource() Dim cmd As New SqlClient.SqlCommand() Dim prm As New SqlClient.SqlParameter Dim da As New SqlClient.SqlDataAdapter() Dim data As New DataSet() Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cmd.Connection = cnn cmd.CommandText = "spGangsInvolvedWithVisitSelect" cmd.CommandType = CommandType.StoredProcedure da.SelectCommand = cmd da.Fill(Data, "Visits") bs.DataSource = Data bs.DataMember = "Visits" Me.DataGridView1.DataSource = bs With Me.DataGridView1 .AutoResizeColumns() .AutoResizeRows() End With End Sub Private Sub cmdRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRefresh.Click cmd.Connection = cnn cmd.CommandText = "spGangsInvolvedWithVisitSelect" cmd.CommandType = CommandType.StoredProcedure prm = cmd.Parameters.Add("@Visit", SqlDbType.Int) prm.Value = Me.txtVisit.Text da.SelectCommand = cmd bs.DataSource = data bs.DataMember = "Visits" Me.DataGridView1.DataSource = bs Me.DataGridView1.Refresh() End Sub End Class Chris,
In the cmdRefresh click procedure you change the cmd for the dataadapter. You forgot to clear the dataset and call the dataadapters fill method again to get the data you are looking for. Here is a link to an example. http://www.vb-tips.com/default.aspx?ID=da78342b-9e47-4e81-916f-ba7a1d82b540 Ken ------------------ Show quoteHide quote "Chris Strug" wrote: > Hi, > > As a learning exercise I have created a simple form which contains a > DataGridView, a Textbox and a Command Button. The DGW is populated from a > stored procedure which optionally takes a parameter to filter the data > retrieved. > > When the form is first loaded, the DGV is populated from the procedure with > no parameter - I've managed to get this bit working fine. > > What I'd like to happen next is for the user to enter a reference ("visit") > in the text box and when the user clicks the command button, the data in the > DGV is refreshed as per the procedure executing with the parameter. > > However, I'm unable to do this, I just can't get the data to refresh. I'm > not sure at what stage I should be refreshing the data and who I achieve > it... > > My form consists of a single DGV, one textbox and one command button. I > haven't included any error handling or such like. > > I'd be much appreciative if someone could give me a few pointers as to how > to get the form to refresh as described above. > > I hope I've managed to explain this clearly enough! > > Many thanks > > Chris. > > ************************** > Public Class Form1 > > Dim cnn As New SqlClient.SqlConnection( _ > "Data Source=COMPUTER19\CSTEST;" & _ > "Initial Catalog=ShipsPerf_Test;" & _ > "Integrated Security=True") > Dim bs As New BindingSource() > Dim cmd As New SqlClient.SqlCommand() > Dim prm As New SqlClient.SqlParameter > Dim da As New SqlClient.SqlDataAdapter() > Dim data As New DataSet() > > Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles MyBase.Load > cmd.Connection = cnn > cmd.CommandText = "spGangsInvolvedWithVisitSelect" > cmd.CommandType = CommandType.StoredProcedure > > da.SelectCommand = cmd > da.Fill(Data, "Visits") > > bs.DataSource = Data > bs.DataMember = "Visits" > > Me.DataGridView1.DataSource = bs > > With Me.DataGridView1 > .AutoResizeColumns() > .AutoResizeRows() > End With > End Sub > > Private Sub cmdRefresh_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles cmdRefresh.Click > cmd.Connection = cnn > cmd.CommandText = "spGangsInvolvedWithVisitSelect" > cmd.CommandType = CommandType.StoredProcedure > > prm = cmd.Parameters.Add("@Visit", SqlDbType.Int) > prm.Value = Me.txtVisit.Text > > da.SelectCommand = cmd > > bs.DataSource = data > bs.DataMember = "Visits" > > Me.DataGridView1.DataSource = bs > Me.DataGridView1.Refresh() > End Sub > End Class > > >
Show quote
Hide quote
"Ken Tucker [MVP]" <KenTucker***@discussions.microsoft.com> wrote in message Ken,news:C3F0FFAC-45B9-40A3-AD3F-307BB026DE11@microsoft.com... > Chris, > > In the cmdRefresh click procedure you change the cmd for the > dataadapter. You forgot to clear the dataset and call the dataadapters > fill > method again to get the data you are looking for. > > Here is a link to an example. > http://www.vb-tips.com/default.aspx?ID=da78342b-9e47-4e81-916f-ba7a1d82b540 > > Ken > ------------------ > > "Chris Strug" wrote: > Many thanks for your reply - that's certainly cleared things up! Thanks again Chris
Using My.settings in VB2005
DEADLINE! Please help! need help on bitblt Object Reference not set an instance of an object Remove not hide User Control, posting again Scroll on MouseWheel Event - VB.NET 1.1 ONE process at a time How program function keys (e.g. F1, F2) in Windows app? MouseMove event not firing read excelfile with ADO |
|||||||||||||||||||||||