Using Enterprise Library 2.0 (Jan 06) and .NET 2.0 (VB.Net 2005)
Dim dbPF As Data.Common.DbP roviderFactory
Try
dbPF =
Data.Common.DbP roviderFactorie s.GetFactory("S ystem.Data.OleD b")
db = New
Microsoft.Pract ices.Enterprise Library.Data.Ge nericDatabase( _
"Provider=Micro soft.Jet.OLEDB. 4.0;Data
Source=NotesMan agerServer.mdb" , dbPF)
db.CreateConnec tion()
Catch ex As Exception
MsgBox("Could not connect to system database. Application
terminating.")
End
I have a Select query in the Access database, named GetFileList and
here is the SQL copied from Access:
SELECT FileList.SrNo, FileList.Filena me, FileList.CRC32,
FileList.Timest amp
FROM FileList;
This code works just FINE:
Try
Dim rs As Data.DataSet
rs =
db.ExecuteDataS et(System.Data. CommandType.Sto redProcedure,
"GetFileLis t")
DataGridView1.D ataSource = rs
DataGridView1.D ataMember = rs.Tables(0).To String
Catch ex As Exception
MsgBox("Excepti on occured" + ex.Message)
End Try
I have a Update query in the Access database, is named InsertFile and
here is the SQL copied from Access:
PARAMETERS Filename Text ( 255 ), CRC32 Long, [Timestamp] Long;
INSERT INTO FileList ( Filename, CRC32, [Timestamp] )
VALUES (@Filename, @CRC32, @Timestamp);
To run this query in VB.Net, I have this code that WORKS:
Dim p(2) As Data.Common.DbP arameter
p(0) = New Data.OleDb.OleD bParameter
p(1) = New Data.OleDb.OleD bParameter
p(2) = New Data.OleDb.OleD bParameter
p(0).Value = "ASDF"
p(1).Value = 11
p(2).Value = 22
Dim cmd As System.Data.Com mon.DbCommand
cmd = db.GetStoredPro cCommand("Inser tFile")
cmd.Parameters. Add(p(0))
cmd.Parameters. Add(p(1))
cmd.Parameters. Add(p(2))
cmd.Connection = db.CreateConnec tion
cmd.Connection. Open()
cmd.ExecuteNonQ uery()
My problem is that it looks so 'inelegant' and probably is. How can I
run the Access query using just the db object .. as in
db.ExecuteNonQu ery ... I've tried various combinations and I get
various errors regarding parameter discovery ...
Anyone?
I just want to use the db object (GenericDatabas e) to run the Insert
query.. with parameters...
Thanks in advance.
ND
Dim dbPF As Data.Common.DbP roviderFactory
Try
dbPF =
Data.Common.DbP roviderFactorie s.GetFactory("S ystem.Data.OleD b")
db = New
Microsoft.Pract ices.Enterprise Library.Data.Ge nericDatabase( _
"Provider=Micro soft.Jet.OLEDB. 4.0;Data
Source=NotesMan agerServer.mdb" , dbPF)
db.CreateConnec tion()
Catch ex As Exception
MsgBox("Could not connect to system database. Application
terminating.")
End
I have a Select query in the Access database, named GetFileList and
here is the SQL copied from Access:
SELECT FileList.SrNo, FileList.Filena me, FileList.CRC32,
FileList.Timest amp
FROM FileList;
This code works just FINE:
Try
Dim rs As Data.DataSet
rs =
db.ExecuteDataS et(System.Data. CommandType.Sto redProcedure,
"GetFileLis t")
DataGridView1.D ataSource = rs
DataGridView1.D ataMember = rs.Tables(0).To String
Catch ex As Exception
MsgBox("Excepti on occured" + ex.Message)
End Try
I have a Update query in the Access database, is named InsertFile and
here is the SQL copied from Access:
PARAMETERS Filename Text ( 255 ), CRC32 Long, [Timestamp] Long;
INSERT INTO FileList ( Filename, CRC32, [Timestamp] )
VALUES (@Filename, @CRC32, @Timestamp);
To run this query in VB.Net, I have this code that WORKS:
Dim p(2) As Data.Common.DbP arameter
p(0) = New Data.OleDb.OleD bParameter
p(1) = New Data.OleDb.OleD bParameter
p(2) = New Data.OleDb.OleD bParameter
p(0).Value = "ASDF"
p(1).Value = 11
p(2).Value = 22
Dim cmd As System.Data.Com mon.DbCommand
cmd = db.GetStoredPro cCommand("Inser tFile")
cmd.Parameters. Add(p(0))
cmd.Parameters. Add(p(1))
cmd.Parameters. Add(p(2))
cmd.Connection = db.CreateConnec tion
cmd.Connection. Open()
cmd.ExecuteNonQ uery()
My problem is that it looks so 'inelegant' and probably is. How can I
run the Access query using just the db object .. as in
db.ExecuteNonQu ery ... I've tried various combinations and I get
various errors regarding parameter discovery ...
Anyone?
I just want to use the db object (GenericDatabas e) to run the Insert
query.. with parameters...
Thanks in advance.
ND