18. januar 2005 - 15:41Der er
11 kommentarer og 1 løsning
Adgang til access database - informationssøgning
Hej eksperter.
Jeg skal i gang med at lave et forholdsvis simpel (hermed menes system uden alle unødige detaljer), og jeg mangler noget information om hvorledes man opretter en forbindelse til en access database. Jeg er uddannet datamatikker, men programmeringen har hovedsageligt forgået i Java, og nu vil jeg prøve VB.Net i stedet. Jeg har derfor været på biblioteket for at finde materiale om VB.Net, men har desværre ikke været i stand til at finde noget om databaseadgang. Derfor vil det være rart hvis nogen ligger inde, eller ved hvor det kan hentes, med nogle eksempler på simpel databaseadgang. Altså hvor opdaterings SQL sætninger bliver udført i VB.net kode. Hvor kan jeg finde det?
Class MainClass Public Shared Sub Main(ByVal args As String()) Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb;User Id=admin;Password=") con.Open Dim cmd As OleDbCommand = New OleDbCommand ("SELECT * FROM T1", con) Dim rdr As OleDbDataReader = cmd.ExecuteReader While rdr.Read Dim f1 As Integer = CType(rdr(0), Integer) Dim f2 As String = CType(rdr(1), String) Console.WriteLine(f1 & " " & f2) End While con.Close End Sub End Class
Imports System Imports System.IO Imports System.Data Imports System.Data.OleDb
Class MainClass
Public Shared Sub Main(ByVal args As String()) Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb;User Id=admin;Password=") con.Open Dim cre As OleDbCommand = New OleDbCommand ("CREATE TABLE imgtest (id INTEGER PRIMARY KEY,img OLEObject)", con) cre.ExecuteNonQuery Dim imgfile As Stream = New FileStream ("C:\blue.jpg", FileMode.Open) Dim siz As Integer = imgfile.Length Dim imgdata(siz-1) As Byte imgfile.Read(imgdata, 0, imgdata.Length) imgfile.Close Dim ins As OleDbCommand = New OleDbCommand ("INSERT INTO imgtest VALUES(@id,@img)", con) ins.Parameters.Add("@id", OleDbType.Integer) ins.Parameters.Add("@img", OleDbType.VarBinary) ins.Parameters("@id").Value = 1 ins.Parameters("@img").Value = imgdata ins.ExecuteNonQuery Dim sel As OleDbCommand = New OleDbCommand ("SELECT img FROM imgtest WHERE id = @id", con) sel.Parameters.Add("@id", OleDbType.Integer) sel.Parameters("@id").Value = 1 Dim imgdata2 As Byte() = CType(sel.ExecuteScalar, Byte()) Dim drp As OleDbCommand = New OleDbCommand ("DROP TABLE imgtest", con) drp.ExecuteNonQuery Dim imgfile2 As Stream = New FileStream ("C:\blue2.jpg", FileMode.Create) imgfile2.Write(imgdata2, 0, imgdata2.Length) imgfile2.Close con.Close End Sub End Class
Imports System Imports System.Data Imports System.Data.OleDb Imports System.Drawing Imports System.Windows.Forms
Namespace DefaultNamespace Public Class MainForm Inherits Form Private dg As DataGrid Private save As Button Private con As OleDbConnection Private da As OleDbDataAdapter Private cb As OleDbCommandBuilder Private ds As DataSet
Public Shared Sub Main Dim fMainForm As New MainForm fMainForm.ShowDialog() End Sub
Public Sub New() MyBase.New Me.InitializeComponent End Sub
Private Sub InitializeComponent() con = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb;UserId=admin;Password=") con.Open da = New OleDbDataAdapter("SELECT * FROM T1", con) cb = New OleDbCommandBuilder(da) da.UpdateCommand = cb.GetUpdateCommand ds = New DataSet da.Fill(ds, "T1") dg = New DataGrid save = New Button SuspendLayout dg.Location = New Point(50, 50) dg.Size = New Size(300, 200) dg.SetDataBinding(ds, "T1") save.Location = New Point (50, 300) save.Size = New Size (100, 25) save.Text = "Save" AddHandler save.Click, AddressOf SaveClick ClientSize = New Size(400, 400) Controls.Add(dg) Controls.Add(save) Text = "Main Form" ResumeLayout(false) End Sub
Sub SaveClick(ByVal sender As Object, ByVal e As EventArgs) da.Update(ds, "T1") ds.AcceptChanges dg.Refresh End Sub End Class End Namespace
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.