Lev-IT-áció

Ez a kis Blog IT fejlesztéshez kapcsolódó témaköröket fog boncolgatni, amelyeket igyekezni fogok gyakorlatiasan megfogalmazni, elemelkedve az elméleti síkról.

Rólam azt kell tudni, hogy már évek óta fejlesztek nagyvállalati, banki egyedi szoftvereket és hát mit mondjak szeretem ezt a szakmát.

A blog témájába beleesik a szembejövő kisebb-nagyobb probléma körök tárgyalása ugyanúgy mint a különböző példakód jellegű „móriczka” kódolás, egyes technológiák bemutatásáról. Így bizony felfog tűnni a blogban az érdeklődési körömbe eső összes technológia – előbb utóbb ;). Ezek a teljesség igénye nélkül (mire is lehet itt számítani):
- .Net programozás. (VB.Net, C#.Net, ASP.NET)
- SQL programozás
- Ismertebb adatbázis kezelők (MS SQL Server, Oracle)
- Kissé egzotikusabb (kevésbé elterjedt) adatbázis kezelők (PostgreSQL, FireBird)
- Java
- Fejlesztési módszertanok


Fogjátok azt is látni, hogy a fenti témákban vannak nálam jártasabb emberek is, de a magyar nyelvű blog szféra szerintem annyira szegényes ezekben a témakörökben, hogy én még simán beférek ide ;D

Remélem mindenkinek tetszeni fog! :)

Címkék

.net (8) adatbázis (3) ajax (1) asp.net (4) c# (6) debian (1) firebird (1) hash (1) java (1) linux (2) masterpage (1) mono (1) monodevelop (1) ms sql (1) mysql (1) oracle (1) postgresql (4) SHA256 (1) sql (5) szekvencia (1) tomcat (1) tools (1) üzemeltetés (1) visual basic (5) Címkefelhő

PostgreSQL és Visual Basic .NET

2011.03.29. 09:38 :: apriliars

A múltkor röviden bemutattam a PostgreSQL adatbázist. Most ideje, hogy az akkor felvitt adatokat juttassuk ki a felhasználói felületre! 

Erre én Visual Basic-et és a .Net Framework-öt fogom használni. Tudom-tudom, hogy C# a legtrendibb .Net nyelv, de tekintve, hogy én a VB -n tanultam programozni ezért az nekem mindig is kicsit a szívem csücske marad :D (Meg egyébként is. C#-ot használok a melóhelyen. Kell a változatosság!!!) 

Szükségünk lesz a .Net driverre, amelyet itt lehet letölteni. Ez a gyakorlatban két dll-t jelent (Mono.Security.dll, Npgsql.dll) Ezeket adjunk a projekt referenciájához, illetve abban az osztályban ahol használni szeretnénk ott Imports Npgsql -t is meg kell adni.

Nyissuk meg a tehát a kedvenc IDE toolunkat és csináljunk egy új winforms projektet. A form1-hez adjunk a következőket:

-> Textbox(TbKeres névvel)
-> DataGridView (GvTalalatok névvel)

A textboxhoz vegyünk fel textchanged eseményt, majd kezdjük annak a törzsébe írni, a következőket:

1) A kapcsolat felépítését.

'Felépítjük a connectionstringet.
Dim ConnBilder As NpgsqlConnectionStringBuilder = New NpgsqlConnectionStringBuilder()
ConnBilder.CommandTimeout = 15
ConnBilder.Database = "test"
ConnBilder.Port = 5432
ConnBilder.Password = "postgres" 'Jajj a titkos jelszavam :)
ConnBilder.Host = "localhost"
ConnBilder.UserName = "postgres"

2) Kapcsolat és command létrehozása

'Definiáljuk a kapcsolatot és az SQL-t
Dim Connection As NpgsqlConnection = New NpgsqlConnection(ConnBilder.ConnectionString)
Dim sql As String = "SELECT * FROM Teszt WHERE lower(szoveg) LIKE '%' || lower(@PARAM) || '%'"
'Igen a PostgreSQL ||-el konkatenál, illetve a Like megkülönböztet kis és nagybetűket is.

'Megnyitjuk a kapcsolatot
Connection.Open()

'Létrehozzuk az sqlcommandot, illetve a Paramétereket
Dim command As NpgsqlCommand = New NpgsqlCommand(sql, Connection)
command.Parameters.Add("@PARAM", NpgsqlTypes.NpgsqlDbType.Varchar)
command.Parameters("@PARAM").Value = Me.TbKeres.Text

3) Lefuttatjuk a lekérdezést, majd zárjuk a kapcsolatot.

'Elvégezzük a mûveletet és feltöltjük a táblát és lezárjuk a kapcsolatot.
Dim dt As DataTable = New DataTable()
Dim da As NpgsqlDataAdapter = New NpgsqlDataAdapter(command)

da.Fill(dt)
Me.GvTalalatok.DataSource = dt
Connection.Close()

Futtassuk és ámuljunk :) Elvben minden szöveg változásra lefut a lekérdezés. Esetleg annyit lehet még szépíteni, hogy a Form Load eseményébe is meghívjuk ezt az eljárást, és akkor az form betöltésekor is lefut a lekérdezés.

Remélem segítettem. :)

2 komment

Címkék: .net postgresql visual basic

A bejegyzés trackback címe:

https://lev-it-acio.blog.hu/api/trackback/id/tr332781143

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Bobolit 2011.10.26. 15:36:38

Szia!

Nagyon jó leírás, köszönet érte!
Viszont lenne egy kérdésem. Én a lekérdezés eredményét nem DataGridView-ba, hanem egyszerű Label-ekbe szeretném kiíratni, de nem igazán sikerül. Valahogy szeretném az eredményt egy tömbbe berakni és onnan szemezgetni.
Ebben tudnál nekem segíteni?

apriliars 2011.10.29. 07:07:33

@Bobolit: Szia!

A DataTable sorait, mezőit is ellehet érni, valahogy így pl.

Dim s As String
For index As Integer = 0 To dt.Rows.Count - 1 Step 1
s = dt.Rows(index)("Mezonev").ToString()'Az oszlopot számként is megadhatom
'Figyelem!! Ha olyan sorra/oszlopra hivatkozunk amely nincs a DataTable objektumra kivétel jön!!!
'Figyelem2!! A visszaadot eredmény object típusú, hogy jellemzően parsolni szükséges!!!
Next
süti beállítások módosítása