|
From: bill on 21 Jul 2008 04:02 Dim Con = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;" & "data source=c:\_Archive\Documentation - Projects\Hardware Tracking - 2008\IT_Assets.mdb") Dim dataAdapter As OleDb.OleDbDataAdapter Dim assCmd As New OleDb.OleDbCommand("SELECT * from tblAssets where asset_tag = @fn", Con) assCmd.Parameters.Add(New OleDb.OleDbParameter("@fn", OleDb.OleDbType.VarChar, 30)).Value = Me.cboAsset.Text Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) Dim DT As New DataTable DataAdapter.Fill(DT) DataAdapter.Dispose() 'I'm hoping that this recordset will populate the grid but nothing happens? Me.DataGridView1.DataSource = DT
From: PvdG42 on 21 Jul 2008 08:29 "bill" <bill(a)bottlegarden.com> wrote in message news:u6U3Wgw6IHA.1192(a)TK2MSFTNGP05.phx.gbl... > Dim Con = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;" & > "data source=c:\_Archive\Documentation - Projects\Hardware Tracking - > 2008\IT_Assets.mdb") > > Dim dataAdapter As OleDb.OleDbDataAdapter > > Dim assCmd As New OleDb.OleDbCommand("SELECT * from tblAssets where > asset_tag = @fn", Con) > > assCmd.Parameters.Add(New OleDb.OleDbParameter("@fn", > OleDb.OleDbType.VarChar, 30)).Value = Me.cboAsset.Text > > Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) > > Dim DT As New DataTable > > DataAdapter.Fill(DT) > > DataAdapter.Dispose() > > 'I'm hoping that this recordset will populate the grid but nothing > happens? > > Me.DataGridView1.DataSource = DT > > No error message at all? One thing I see is the use of single "\" in the connection string, which I think should either be "\\" or "/".
From: Stanimir Stoyanov on 21 Jul 2008 08:39 > One thing I see is the use of single "\" in the connection string, which I > think should either be "\\" or "/". In VB you do not have to escape slashes. The ConnectionString is fine as long as the provider and data source are correctly defined. Best Regards, Stanimir Stoyanov | www.stoyanoff.info "PvdG42" <pvdg(a)toadstool.edu> wrote in message news:u7b721y6IHA.4988(a)TK2MSFTNGP04.phx.gbl... > "bill" <bill(a)bottlegarden.com> wrote in message > news:u6U3Wgw6IHA.1192(a)TK2MSFTNGP05.phx.gbl... >> Dim Con = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;" & >> "data source=c:\_Archive\Documentation - Projects\Hardware Tracking - >> 2008\IT_Assets.mdb") >> >> Dim dataAdapter As OleDb.OleDbDataAdapter >> >> Dim assCmd As New OleDb.OleDbCommand("SELECT * from tblAssets where >> asset_tag = @fn", Con) >> >> assCmd.Parameters.Add(New OleDb.OleDbParameter("@fn", >> OleDb.OleDbType.VarChar, 30)).Value = Me.cboAsset.Text >> >> Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) >> >> Dim DT As New DataTable >> >> DataAdapter.Fill(DT) >> >> DataAdapter.Dispose() >> >> 'I'm hoping that this recordset will populate the grid but nothing >> happens? >> >> Me.DataGridView1.DataSource = DT >> >>
From: Stephany Young on 21 Jul 2008 09:06 The OleDbCommand, in general but especially for JET, does not support named parameters in the CommandText. Instead parameters are positional and designated by ?. So your CommandText then becomes: "SELECT * from tblAssets where asset_tag=?" The positional parameter is satisfied by the OleDbParameter in the relative position in the Parameters collection so it is CRITICAL that they are added in the correct sequence. When you defined an OleDbCommand, you must give it a name, even though it is is ignored. So your parameter collection, is populated thus: assCmd.Parameters.Add("asset_tag", OleDbType.VarChar).Value = cboAsset.Text Note that I have demonstrated using 'asset-tag' so that it becomes self-documenting to a degree. Also note that the Add method has a number of overloads that make defining OleDBParameters easier. In addition, you do not HAVE to define the width of the column in question. If you omit the width then it will be inferred at execution-time. IIRC there is also a method AddWithValue so that you can add an OleDbParameter thus: assCmd.Parameters.AddWithValue("asset_tag", cboAsset.Text) In this case both the type and the with of the column in question are inferred at execution-time. "bill" <bill(a)bottlegarden.com> wrote in message news:u6U3Wgw6IHA.1192(a)TK2MSFTNGP05.phx.gbl... > Dim Con = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;" & > "data source=c:\_Archive\Documentation - Projects\Hardware Tracking - > 2008\IT_Assets.mdb") > > Dim dataAdapter As OleDb.OleDbDataAdapter > > Dim assCmd As New OleDb.OleDbCommand("SELECT * from tblAssets where > asset_tag = @fn", Con) > > assCmd.Parameters.Add(New OleDb.OleDbParameter("@fn", > OleDb.OleDbType.VarChar, 30)).Value = Me.cboAsset.Text > > Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) > > Dim DT As New DataTable > > DataAdapter.Fill(DT) > > DataAdapter.Dispose() > > 'I'm hoping that this recordset will populate the grid but nothing > happens? > > Me.DataGridView1.DataSource = DT > >
From: bill on 21 Jul 2008 20:45
I do get an error message here: Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) the dataAdapeter underlines and says "dataAdapter already declared in local block" but I don't see what the problem is there? Dim Con = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;" & "data source=c:\_Archive\Documentation - Projects\Hardware Tracking - 2008\IT_Assets.mdb") Dim dataAdapter As OleDb.OleDbDataAdapter Dim assCmd As New OleDb.OleDbCommand("SELECT * from tblAssets where asset_tag=?") assCmd.Parameters.Add("asset_tag", OleDbType.VarChar).Value = cboAsset.Text Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) Dim DT As New DataTable DataAdapter.Fill(DT) DataAdapter.Dispose() Me.DataGridView1.DataSource = DT "PvdG42" <pvdg(a)toadstool.edu> wrote in message news:u7b721y6IHA.4988(a)TK2MSFTNGP04.phx.gbl... > "bill" <bill(a)bottlegarden.com> wrote in message > news:u6U3Wgw6IHA.1192(a)TK2MSFTNGP05.phx.gbl... >> Dim Con = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;" & >> "data source=c:\_Archive\Documentation - Projects\Hardware Tracking - >> 2008\IT_Assets.mdb") >> >> Dim dataAdapter As OleDb.OleDbDataAdapter >> >> Dim assCmd As New OleDb.OleDbCommand("SELECT * from tblAssets where >> asset_tag = @fn", Con) >> >> assCmd.Parameters.Add(New OleDb.OleDbParameter("@fn", >> OleDb.OleDbType.VarChar, 30)).Value = Me.cboAsset.Text >> >> Dim dataAdapter As New OleDb.OleDbDataAdapter(assCmd, Con) >> >> Dim DT As New DataTable >> >> DataAdapter.Fill(DT) >> >> DataAdapter.Dispose() >> >> 'I'm hoping that this recordset will populate the grid but nothing >> happens? >> >> Me.DataGridView1.DataSource = DT >> >> > > No error message at all? > One thing I see is the use of single "\" in the connection string, which I > think should either be "\\" or "/". > |