Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net] interazione con aaccess
Forum - C# / VB.NET - [vb.net] interazione con aaccess

Avatar
foralobo (Normal User)
Pro


Messaggi: 146
Iscritto: 30/11/2009

Segnala al moderatore
Postato alle 18:06
Mercoledì, 02/06/2010
salve...devo connettermi ad un db access (2003)...ho fatto una cosa del genere:

Codice sorgente - presumibilmente VB.NET

  1. Imports System.Data.OleDb
  2.  
  3. Public Class Form1
  4.  
  5.     Private Sub btnTrova_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTrova.Click
  6.         Dim PercorsoDB As String = "C:\Documents and Settings\Vincy\Desktop\Condivisa\database.mdb"
  7.         Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & PercorsoDB
  8.         Dim Cn As New OleDbConnection(ConnString)
  9.  
  10.         Cn.Open()
  11.  
  12.         Dim Qyery As String = "select * from tbl_clienti"
  13.         Dim cmd As New OleDbCommand(Qyery, Cn)
  14.         Dim dr As OleDbDataReader = cmd.ExecuteReader
  15.  
  16.  
  17.         Do While dr.Read()
  18.             ListBox1.Items.Add(dr.Item("IDCliente") & " - " & dr.Item("Tipo"))
  19.         Loop
  20.  
  21.         Cn.Close()
  22.     End Sub
  23.  
  24.  
  25. End Class



Funziona si, ma essendo inesperto di ado.net vorrei avere qualche consiglio su cosa utilizzare per i db. Velocità, gestione di una grossa mole di dati etc..
Qualcuno mi ha consigliato Entity Framework.

Grazie dei consigli

PM Quote
Avatar
Grubby (Normal User)
Pro


Messaggi: 85
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 23:37
Mercoledì, 02/06/2010
Testo quotato

Postato originariamente da foralobo:

Funziona si, ma essendo inesperto di ado.net vorrei avere qualche consiglio su cosa utilizzare per i db. Velocità, gestione di una grossa mole di dati etc..
Qualcuno mi ha consigliato Entity Framework.

Grazie dei consigli



Non capisco...:-|
Puoi specificare meglio?
:)

PM Quote
Avatar
foralobo (Normal User)
Pro


Messaggi: 146
Iscritto: 30/11/2009

Segnala al moderatore
Postato alle 12:02
Giovedì, 03/06/2010
Testo quotato

Postato originariamente da Grubby:

Testo quotato

Postato originariamente da foralobo:

Funziona si, ma essendo inesperto di ado.net vorrei avere qualche consiglio su cosa utilizzare per i db. Velocità, gestione di una grossa mole di dati etc..
Qualcuno mi ha consigliato Entity Framework.

Grazie dei consigli



Non capisco...:-|
Puoi specificare meglio?
:)



intendo..al posto di usare la classe oledb..ci sono metodi + efficienti?

PM Quote
Avatar
Grubby (Normal User)
Pro


Messaggi: 85
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 15:18
Giovedì, 03/06/2010
mmmm...
Sinceramente non lo so.
Scusa ma che probblemi ti da?

PM Quote
Avatar
BigMitch (Member)
Rookie


Messaggi: 43
Iscritto: 15/02/2009

Segnala al moderatore
Postato alle 22:27
Giovedì, 03/06/2010
Ado.net di problemi non ne da tanti, l'unico problema che puoi avere nella gestione di molti dati è il file mdb di access che può bloccarsi e farti perdere anche dei dati...puoi integrarti con mssql server che in velocità e gestione di tanti dati va bene..:k:

PM Quote
Avatar
foralobo (Normal User)
Pro


Messaggi: 146
Iscritto: 30/11/2009

Segnala al moderatore
Postato alle 10:54
Venerdì, 04/06/2010
infatti...non ci sono problemi..era solo un'informazione richiesta sull'ufficienza

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:31
Venerdì, 04/06/2010
Sull'efficienza posso dirti che il motore di database di access è meno performante di altri. Inoltre i database access sono poco portabili. Tuttavia questo dipende dai vincoli che riguardano il tuo progetto (ossia se devi usare per forza questo gestore, non fa niente).

Riguardo alla gestione via codice, ci sono alcuni approcci diversi:
- ADO.NET "classico", ossia come l'hai fatto tu;
- Lo stesso di sopra, ma con DataSet tipizzati;
- LINQ to SQL, basato sull'integrazione del linguaggio di querying nel linguaggio VB2008 (necessita il framework 3.5). Inutile dire che questo fatto facilita di molto l'utilizzo dei database (l'efficienza non cambia di molto a parità di gestore usato);
- LINQ to Entities, simile a LINQ to SQL, ma utilizza il database come entità anziché come contesto di dati (questo significa che puoi manipolare l'entità direttamente e non manipolare oggetti le cui proprietà vengono poi trasferite sul database tramite il suddesto contesto di dati).

Qui per i primi due:
http://totem.altervista.org/guida/versione3/C2%20-%20Descr ...

Qui per LINQ:
http://totem.altervista.org/guida/linq/index.php

PM Quote
Avatar
foralobo (Normal User)
Pro


Messaggi: 146
Iscritto: 30/11/2009

Segnala al moderatore
Postato alle 10:02
Domenica, 06/06/2010
Testo quotato

Postato originariamente da Il Totem:


Qui per i primi due:
http://totem.altervista.org/guida/versione3/C2%20-%20Descr ...




perdona la mia ignoranza..io ho bisogno di usare access, queste librerie riguardano mysqol soltanto o mi sbaglio?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:57
Domenica, 06/06/2010
Tutti i tipi di dato usati nella guida esistono anche per access, anche perchè le librerie per MySql hanno semplicemente emulato i metodi esistenti, per rendere più semplice la gestione a chi è abituato a un altro database.

In sostanza, potresti sostituire tutti i tipi di dato che iniziano con MySql con gli stessi tipi aggiungendo il prefisso OleDb. Prima di fare ciò devi importare il namespace System.Data.OleDb.
Ad esempio, il primo codice diventerebbe:
Codice sorgente - presumibilmente VB.NET

  1. Imports System.Data.OleDb
  2.  
  3. '...
  4.  
  5. Dim Conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;")
  6.  
  7. Try
  8.     Conn.Close()
  9. Catch Ex As Exception
  10.     '...
  11. Finally
  12.     Conn.Close()
  13. End Try


La stringa di connessione, ovviamente, deve essere diversa.

PM Quote