» »

OleDb in visual studio .net

OleDb in visual studio .net

jerneju ::

Zanima me, kako lahko v Visual Studio .NET dostopam do OleDb...?

Microsoft ::

Na hitro en moj primer:

//Tu se preverimo, da link ne obstaja....
if(connection.State != ConnectionState.Closed)
connection.Close();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = "SELECT COUNT(id) FROM Poisci " +
"WHERE [link]=@link";
OleDbParameter parameter = new OleDbParameter("@link", TextBox1.Text);
command.Parameters.Clear();
command.Parameters.Add(parameter);

//Prestejemo, ce obstaja ze ta link...
int count = 0;
try
{
if(connection.State != ConnectionState.Open)
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while(reader.Read())
{
count = reader.GetInt32(0);
break;
}
}
catch(Exception ex)
{
ErrorWriter ew = new ErrorWriter();
ew.writeError("Dodaj", ex.ToString(), command.CommandText);
}
finally
{
if(connection.State != ConnectionState.Closed)
connection.Close();
}


Connection string ponavadi izgleda takole:
this.connection.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""D:\STF\DataBase.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";


To pa lahko tudi generiras, ti ni treba vsega pisat. Odpres server explorer, dodas bazo, potem jo pa samo tja, kjer delas, z misko potegnes, pa se ti naredi povezava pa se adapter.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

Zgodovina sprememb…

jerneju ::

Ja, hvala za odgovor. Nekako take primere imam tudi v svoji knjigci.

Samo malo narobe sem definiral vprašanje. Pravzaprav me zanima, kako postaviti oledb strežnik. Imam mssql server, samo oledb pa sploh ne. Kje ga dobim?

MaCoFaCo ::

Oledb (System.Data.OleDb) je način dostopa do sql strežnika. Če imaš nameščen mssql lahko torej do njega dostopaš preko oledb brez problema. Nič ti ni treba nameščati. Potem imaš drugo varijanto, dostop preko ODBCja (System.Data.Odbc) in tretjo varijanto native mssql server dostop (System.Data.SqlClient), ki je za sam mssql najbolj optimalen.

jerneju ::

Ok, hvala. Zdaj mi je jasno.

Samo še to bi vprašal. Zakaj je v OleDbConnection napisana pot do baze tako: "D:\\PRO.ADO.NET\\DataAdapter\\Samples\\pubs.mdb", se pravi v obliki folderjev pa tega... Pa sem šel iskat pubs.mdb na svojem računalniku pa ni našel... Server explorer pa najde pubs.mdb v Server Explorerju.

jerneju ::

OledDbConnection dbConn = new OleDbConnection("Provider=Mircosoft.Jet.OLEDB.4.0;Password?:User ID=Admin;Data Source=D:\\PRO.ADO.NET\\DataAdapter\\Samples\\pubs.mdb");

Kaj pomeni to taodebeljeno? Pot do datoteke s podatki ali kaj? Kako to prilagodim za moj računalnik?

Zgodovina sprememb…

  • spremenil: jerneju ()

Microsoft ::

To je pot, kjer se more nahajat mdb datoteka, ki predstavlja bazo. Lahko jo odpres tudi z Access-om.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

jerneju ::

Ja, saj to jaz štekam. Samo mi ni jasno, kje je ta datoteka na mojem compu.

Recimo, v Server Explorerju jo najdem, torej preko MSSql dela, samo tko na disku jo pa iskalnik sploh ne najde.. Nič mi ni jasno.

Microsoft ::

V Server Explorer je ime baze ACCESS.C:\Folder\baza.mdb.user, prav tako ti, ce odpres properties od te baze, to pokaze pri Database.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

jerneju ::

Rabil sem bazo pubs.

V server explorerju jo preko mojega serverja na localhostu (MSSQL Server ali nekaj takega) bere z pubs.mdf ali nekaj takega.

Če berem z diska preko OleDb mi bere pubs.mdB.

Torej sem rabil .MDB datoteko, to sem pa pobral z interneta, ker je doma nisem znal pretvoriti iz .mdf.

Pa kaj, torej MsSql podpira branje baz preko strežnika, OleDb pa direktno z diska. Se pravi slednje požre manj resourcov, prvo pa je dobro, če je več računalnikov in deluje preko mreže?

Microsoft ::

Ne stekam cisto, samo tko za info. Ce imas MS SQL 2000 instaliran po defaultu, potem se baze nahajajo v C:\Program Files\Microsoft SQL Server\MSSQL$imeinstance\Data\.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

jerneju ::

C:\Program Files\Microsoft SQL Server\MSSQL\Data

Ja, tam imam datoteko pubs.MDF

Te mi pa OleDb ne bere. Bere mi jo samo Microsoft SQL Server.

Če hočem, da mi bo OleDB to bral, moram imeti .MDB datoteko, torej pubs.MDB.

Obe bazi sta isti, samo formata sta različna. Torej .MDF za MSSQL, .MDB za OleDB.

Microsoft ::

Ja dober, zdej mas bazo pubs v MS SQL, pa bi jo rad odpru z OleDb. Ok.

Napjres ofnes Access, naredis novo prazno bazo tralala.mdb in jo nekma shranis. Potem gres v SQL Server Enterprise Manager, kjer oznacis pubs bazo, desni klik, izberes All Task > Export Data..., za Destination izberes Microsoft Access, za File name pa se sprehodis do tja, kjer si naredil prej prazno bazo tralala.mdb. Pa bos mel tabele v Access bazi.
Je to to?


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

jerneju ::

Ok, hvala.

Pa ti v Microsoftu delal al kaj?

Microsoft ::

Si mislil delalš?

Ne.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

Kovalchuk ::

Še jaz bi nekaj prašal. Z Visual Studiom .NET 2003 poskušam dostopat preko OleDbAdapterja do Access baze na IIS (torej localhost) strežniku. Ampak se pojavi problam, ki ga ponazori tale slikca.


Sem štelal pravice temu direktoriju "Baza" v Windows Explorerju, pa v Administrator Tools --> Internet Information Services sem tudi štelal razne pravice, sprobal razne kombinacije, ampak nič ni obrodilo sadov. Zmeraj isto.

Prosim lepo, če imate kakšne izkušnje s tem, da pripomorete k rešitvi.

Lp

Kovalchuk ::

Never mind zgornjo objavo, sem uštimal.
Greš na mapo -- properties -- zavihek security -- dodaš uporabnika everyone in mu dodaš pravice še za modify.


Vredno ogleda ...

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

SQL problem

Oddelek: Programiranje
141538 (1156) win64
»

problem v C#

Oddelek: Programiranje
211881 (1596) dvojka
»

c++ & database(access)

Oddelek: Programiranje
51410 (1266) Seadoo
»

branje byte[] iz MS access-ove baze

Oddelek: Programiranje
81781 (1691) BHawk
»

asp problem - noce updejtat baze

Oddelek: Izdelava spletišč
6861 (804) AglioAlio

Več podobnih tem