Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / General / July 2004

Tip: Looking for answers? Try searching our database.

Connecting to a DataBase like i did in VB 6

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Chris - 29 Jul 2004 15:28 GMT
Hi all,

I wrote a cool little database program a while back, in VB6, and im
intending to rewrite it in .net.

I am new(ish) to .net, but an old hand at VB5/6.

In VB i would access the mdb file something like this.

set db=database
set db=opendatabase("mydb.mdb")
dim rec as recordset
set rec= db.openrecordset("select name form names")

while rec.eof=false
 debug.write(rec!name)
wend

How do i do the same in .net, it seems to want me to set up these pages ets,
but i need to create queries and joins on the fly so data can be accessed as
the user requests.

Ive looked in the help, and followed the tutorials, but i cant seem to be
able to query the db properly, or even connect to it in the way that i want.

Thanks in advance

Chris
Nick Wilton - 29 Jul 2004 15:52 GMT
Use the OleDdDataAdapter, Connection and Command controls  in winforms to
generate the strings that you require for your app. To manipulate these
strings programmatically try using the stringbuilder class.

> Hi all,
>
[quoted text clipped - 24 lines]
>
> Chris
Chris - 29 Jul 2004 15:53 GMT
Can you give a code example that does teh same as my code below please.

> Use the OleDdDataAdapter, Connection and Command controls  in winforms to
> generate the strings that you require for your app. To manipulate these
[quoted text clipped - 16 lines]
> > while rec.eof=false
> >   debug.write(rec!name)
       rec.movenext
> > wend
> >
[quoted text clipped - 11 lines]
> >
> > Chris
Nick Wilton - 29 Jul 2004 16:50 GMT
Something like this:

       Dim mydbConnection As OleDb.OleDbConnection
       mydbConnection.ConnectionString = "c:\mydb.mdb"
       mydbConnection.Open()

       Dim mydbCommand As OleDb.OleDbCommand
       mydbCommand.Connection = mydbConnection
       mydbCommand.CommandText = "SELECT * FROM MyTable"

       Dim myreader As oleDB.OleDbDataReader

       myreader = mydbCommand.ExecuteReader

You can now inspect the myreader object the same way as you did with your
recordset.

> Can you give a code example that does teh same as my code below please.
>
[quoted text clipped - 36 lines]
> > >
> > > Chris
Chris - 29 Jul 2004 19:09 GMT
Thanks Nick thats great, but how do i get at the data?

eg.

debug.writeline(myreader!name)

just throws an error. AAh i know what i wnnt, but not how to sintax it.

BTW,  all the objects need to be new(ed) on the dims.

> Something like this:
>
[quoted text clipped - 55 lines]
> > > >
> > > > Chris
Ron Allen - 30 Jul 2004 13:54 GMT
Chris,
   Use
   Do While myreader.Read    ' assuming I've got the VB syntax for this
loop
       Dim myVar AS string = myreader.GetString(0)    ' for a string at the
first field returned
                           ' also see GetOrdinal to lookup the column #
from the name
       Dim myInt AS int =
myreader.GetInt32(myreader.GetOrdinal("myFieldName"))
   Loop

Ron Allen

> Thanks Nick thats great, but how do i get at the data?
>
[quoted text clipped - 68 lines]
> > > > >
> > > > > Chris
Chris - 30 Jul 2004 15:00 GMT
Sorry ron but that does nothing but throw erreors.

I think i am missing a consecpt here, or .NET has taken DB programing and
made it so trikey that no one can use it propperly.

All i wnat is this translated into .NET, ive just complied it and got it
running in VB6, took me 5mins. In fact it took me less time to write that
code than it did to write this message. Unlike 2+ days for .NET to do the
same thing and still no joy.

here is excatly what i wnat converted, i need the VAR names to remain if
possible.
db.mdb has one table (Users) with 2 collums, (Name, Password)

///
dim DB as Database    ' i wnat to use the db everywher in the program so i
only want to open it once.

sub main()

  set DB = opendatabase("C:\db.mdb")         'open DB

  dim qry as string = "Select * from users;"     'set query
  dim usr as recordset                                    'create an empty
record set

  set usr = db.openrecordset(qry)                  ' populate record set

 while usr.eof = false                                       ' loop unless
end of record set is reached
     debug.writeline(usr!Name)                         'dump name from
current record
     debug.writeline(usr!Password)                  'dump password from
current record
     usr.movenext                                              'move to
next record
 end while.

end sub
///

how can this be so diffacult in .NET !!!

> Chris,
>     Use
[quoted text clipped - 88 lines]
> > > > > >
> > > > > > Chris
Ron Allen - 30 Jul 2004 17:33 GMT
Chris,
   It doesn't seem that difficult to me.  In C# I'd write

void main()    // or some other function called at startup.
{
   string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\db.mdb;Mode=Share Deny None;";
   OleDbConnection db = new OleDbConnection(connStr)
   OleDbCommand cmd = new OleDbCommand("Select Name, Password FROM Users",
db);
   _db.Open();
   OleDbDataReader rdr = cmd.ExecuteReader();
   while (rdr.Read())
   {
       System.Diagnostics.Debug.WriteLine(rdr.GetString(0));
       System.Diagnostics.Debug.WriteLine(rdr.GetString(1));
   }
   _db.Close();    // close the connection
}

Note that to use the db variable in other modules you will have to make it
public and specific to the module and pass the class it is in to those
programs.  Also make sure that your main doesn't just return after writing
these as that will cause the program to exit.  I do this by having my own
class for doing database manipulation.  I pass in an open connection or a
database name/server nam (filename for OleDb) and then do all the
manipulation there.

   You may want to visit microsoft.public.dotnet.framework.adonet as that
is dedicated to ADO.NET questions.

   Also the book by David Sceppa "ADO.NET Core Reference" is quite good and
has a lot of examples in both C# and VB.NET

Ron Allen

> Sorry ron but that does nothing but throw erreors.
>
[quoted text clipped - 133 lines]
> > > > > > >
> > > > > > > Chris
Cor Ligthert - 30 Jul 2004 20:08 GMT
Chris,

I am really stumbled, I made a sample exactly as yours however now in VBNet
way and you even did not look to it.

Cor
Cor Ligthert - 29 Jul 2004 16:03 GMT
Chris,

Without all error checking.
\\\
Dim ds as new dataset
Dim Conn As New OleDbConnection(Microsoft.Jet.OLEDB.4.0;Data
Source="C:\mydb.Mdb")
Dim da As New OleDbDataAdapter("Select name from names",Conn)
da.Fill(ds)
for each dr as datarow in ds.tables(0).rows
 console.write(dr("name").ToString)
next
////

I hope this helps?

Cor

> I wrote a cool little database program a while back, in VB6, and im
> intending to rewrite it in .net.
[quoted text clipped - 22 lines]
>
> Chris

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.