Enterprise Library Data Block : GenericDatabase class and Access databases : Using ExecuteNonQuery problems with parameters

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • nostradumbass77@yahoo.com

    Enterprise Library Data Block : GenericDatabase class and Access databases : Using ExecuteNonQuery problems with parameters

    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

Working...