» »

MS Access in C#

MS Access in C#

caucic ::

Pozdravljeni.

V MS Accessu imam bazo in v njej več tabel. (osebe, izobrazba, kontakt,...) V C# delam aplikacijo, s katero bom upravljal z DB. Kar se tiče vnašanja podatkov v DB ni večjih problemov. Zatakne se mi že tako rekoč na začetku prve malo resnejše zadeve in sicer, ko želim izdelati poizvedbo. V Formi imam TextBox1, kamor vpišem npr. osebno številko osebe. Želel pa bi, da se mi ob kliku na gumb "Išči", izpišejo vsi ostali podatki o tej osebi. (npr. ime in priimek ter vsi kontaktni podatki ter dosežena izobrazba)

Tabela Osebe vsebuje atribute: (#osebna številka, imePriimek); Tabela Kontakt atribute: (#Id, OsebaFK, telDoma, telSluzba, eMail); Tabela Izobrazba pa (#ID, OsebaFK, Poklic, StopnjaIzobrazbe,...)

Zatakne se mi, ko moram povedat oz. napisat, da je Osebe.OsebnaStevilka = Kontakt.OsebeFK. (enako tudi za povezavo med tabelama Osebe in Izobrazba)

Kako mora biti napisam SQL v C#, da bo zadeva delovala pravilno? Rezultat želim, da se mi izpiše v listBoxu na isti formi.

Hvala vnaprej za pomoč.
Lp, MM

majlo ::

Evo en primer, sicer VB, ampak bi moraloit jasno:

Public Sub GetData()

cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & SchoolData.SchoolData.DataModule.mDataPath & "\school.mdb")
'cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\emp.mdb;")
cn.Open()

Try
Dim Comm As New OleDbCommand("Select * from pupils", cn)
Dim Rdr As OleDbDataReader = Comm.ExecuteReader

Dim ime As String
Dim Priimek as String

If Rdr.HasRows Then
if Rdr.Read()


ime = Rdr(0).ToString
priimek = Rdr(1).ToString

itd....

End if
End If

Finally
cn.Close()
cn.Dispose()
End Try

End Sub


Predlagam, da si narediš v accesu query (view), kjer se prikazujejo podatki iz vseh tabel in nato izbiraš iz tega viewa.
Potem spremenit select stavek:

Dim Comm As New OleDbCommand("Select * from view where id = " & textbox1.text , cn)
Ta stavek je bolj na pamet ampak vidiš kam pes taco moli :)

majlo ::

Aja za view primer querija:

SELECT Kontakt.*, Osebe.*
FROM Osebe INNER JOIN Kontakt ON Osebe.OsebnaStevilka = Kontakt.OsebeFK;

Nisem siguren če bo prav delalo iz prve ampak probaj pa boš videl

Zgodovina sprememb…

  • spremenilo: majlo ()

caucic ::

Hvala, bom proval.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL problem

Oddelek: Programiranje
141536 (1154) win64
»

problem v C#

Oddelek: Programiranje
211879 (1594) dvojka
»

OleDb in visual studio .net

Oddelek: Programiranje
162183 (1962) Kovalchuk
»

c++ & database(access)

Oddelek: Programiranje
51410 (1266) Seadoo
»

branje byte[] iz MS access-ove baze

Oddelek: Programiranje
81781 (1691) BHawk

Več podobnih tem