Adatkezelés MS SQL SERVER és VB 2005-el.

Adatkezelés MS SQL SERVER és VB 2005-el.
2006-04-28T23:09:17+02:00
2007-11-25T18:39:15+01:00
2022-11-06T19:41:56+01:00
craig85
Hi All!

Egy programot írnék visual studio 2005-ben, Basicben. A problémám továbbá az is, hogy még nem kezeltem basicben (visual) ms sql adatbázist. Szóval:

Keresni szeretnék az adatbázis táblájában.
Tehát: jön a vörösfejű, egységsugarú user, beír egy szót a txtBox-ba, és ha benne van, akkor sikít a rendszer.

Kérlek segítsetek. Fontos lenne.
Köszönet mindenért!
Mutasd a teljes hozzászólást!
Egy programot írnék visual studio 2005-ben, Basicben. A problémám továbbá az is, hogy még nem kezeltem basicben (visual) ms sql adatbázist. Szóval:

Egyébként igen?
Az SQL 2005-öt már használtad?
Mert ha már igy nekibuzdulunk, tudni érdemes, hogy a téma két rétegű:
1. Adatforrás
2. Megjelenítés
.. és az első most az adatforrás, mert anélkül ugye nincs mit keresni.

Tanult fórum-társaim mindig arra ösztökéltek, hogy lehetőleg tárolt eljárásokat használjak ami megóv az SQL Injection káros hatásaitól.
Remélem nálad adott a MS SQL Server Management Studio akkor egyszerű a feladat.
Kreálsz egy adatbázist (ha még nem lenne), létrehozod benne azt a táblát amelyben a user-ek kutakodását biztosítani kívánod.
Legyen a tábla neve pl.
Partnerek
oszlopai:
PartnerID,
Neve,
Cime
..stb.
A Management Studio-val rögtön adatokat is vihetsz a tábládba, igy lesz miben keresni.
Ezek után térjünk át a Megjelenítés témakörére!

A Management Studio-t bezárhatod, most a Visual Studio-t használjuk a továbbiakban.
Kreálsz egy új alkalmazást Visual Basic - Windows Application és a neve legyen pl. Kereso!
Kapsz egy üres form-ot (Form1).
A Data menü-ben kattints a Show Data Sources-re s előjön egy ablak - közepén felirattal:
Add New Data Source
Kattints rá!
A Data Source Configuration Wizard végigvezet egy dataset létrehozásán ( a connectionstring-től a táblák kiválasztásáig).
Most nem részletezek mindent, mert lehet, hogy már a kisujjadban az egész, inkább csak a tábla részét említeném.
Nem jelölsz ki semmit a táblák közül!
Ez egy trükk, de megéri.
Meg fogja kérdezni a varázsló, hogy tényleg üres dataset-et akarsz-e létrehozni, Igen legyen a válaszod.
Majd a Data Source ablakban újra előveszed a dataset-edet s kéred a módosítását ( edit dataset with designer).
Kijön egy .xsd ablak, s rákattintva (jopbb gombbal) választod az
Add TableAdapter-t.
Jön az ismert varázsló, s előbb katt a Next-re, majd a második ablakban bejelölöd a Create new stored procedures-t, és Next!
Az új ablakban segítségül hívod a Query Bilder-t (katt a gombra).
Kiválasztod a Partnerek táblát.
Bejelölöd az All Columns checkbox-ot.
A harmadik ablakrészben megjelenik:

SELECT Partnerek.* FROM Partnerek
Ezt kiegészíted egy Where feltétellel:
WHERE Megnevezes=@Megnevezes
Az eredményt rögtön ellenőrizheted, katt jobbgombal az ablakra, s
Execute SQL
Megadod a keresett nevet s értékeled az eredményt.
Nos, ha minden ok, akkor katt az Ok gombra , s visszatérünk a varázslóhoz a QueryBilder-ből. Itt katt a Next-re.
A következő ablakban láthatod az új tárolt eljárások felsorolását, átnevezheted őket pl. Usp_select_Partnerek, stb.
Még két Nex - katt, s Finish!
Most már van táblád is a dataset-ben.
Mented az .xsd oldalt s ismét nyitod a Data Source ablakot.
A dataset-et kinyitod, látod a friss tablaadapteredet (Partnerek),
egy refresh után az adapter neve mellett jobbra megjelenik egy nyíl (lefele muttat) erre kattintva beállíthatod a megfelelő formációt (jelen esetben maradjunk a datagridview-nál).
Húzd rá a form-odra a tablaadaptert.
A látvány önmagáért beszél.
Megvan minden, mit kívántál, de ezt még lehet bonyolítani, ha akarod, ám már így is hosszúra sikeredett a körmölésem, úgy hogy ennyit egyenlőre.
Sok sikert!
Mutasd a teljes hozzászólást!

  • Szia!

    Szerintem az ADO használatának kellene utána nézned.

    Itt megtalálod, hogy hogyan kell csatlakoznod a szerverhez, és utána az sql parancsok mindegyiknél (hasonlóan) használhatóak.

    Esetleg a google-n böngészve
    Mutasd a teljes hozzászólást!
  • Kismillió úton el lehet indulni. Az alap a toolbox mellett található server/database explorer. Itt hozzáadsz egy új kapcsolatot, a connection string automatikusan legenerálódik.

    Ezek után egy két lehetséges út:
    1.)
    - feldobsz a formra egy DataGridView-t.
    - DataSource-nál azt mondod, hogy "Add Project DataSource"
    - Végigviszed a varázslót. Bepipálod azokat a táblákat melyeket használni szeretnél.
    - Keletkezett egy valamiDataSet.xsd
    - Ezt már fel tudod használni mint datasource-t.
    - Kiválasztod a datagridview-nak a megfelelő táblát.
    - A formodon automatikusan keletkezik egy bindingsource
    - a bindingsource.Filter property-vel tudod szűrni a megjelenítendő adatokat
    2.)
    - a dataset létrehozásáig lsd előző
    - módosítod a datasetedet: A tableadapter default Fill, GetData methódusai mellé felveszel sajátot, melyben egy paraméteres lekérdezést írsz (a QueryBuilder-ben a Filter oszlopba @-al kezdődő nevet adsz meg, ez lesz a paraméter)
    - Az előzőleg a Form.Load-ban keletkezett egy Tableadapter.Fill (ez szedi le az adatokat az SQL-ből). Ezt kitörlöd és átírod pl. egy button eseményébe, de nem a Fill-el, hanem a FillByValami eljárásoddal töltöd az eredményt
    3.) Hagyod a fenébe az egész adatkötéses mókát és magad keresel:
    - Dim cn as new SQLConnection("...")
    - cn.Open
    - Dim cmd as new SQLCommand("SELECT * FROm valami WHERE mezo1 LIKE '%" & me.txtBox.Text & "%'" , cn)
    - Dim dr as SQLDataReader = cmd.ExecuteReader
    - do While dr.Read
    messagebox.sho dr.getstring(0)
    loop
    dr.close
    cn.close
    4.) stb.
    Mutasd a teljes hozzászólást!
  • Egy programot írnék visual studio 2005-ben, Basicben. A problémám továbbá az is, hogy még nem kezeltem basicben (visual) ms sql adatbázist. Szóval:

    Egyébként igen?
    Az SQL 2005-öt már használtad?
    Mert ha már igy nekibuzdulunk, tudni érdemes, hogy a téma két rétegű:
    1. Adatforrás
    2. Megjelenítés
    .. és az első most az adatforrás, mert anélkül ugye nincs mit keresni.

    Tanult fórum-társaim mindig arra ösztökéltek, hogy lehetőleg tárolt eljárásokat használjak ami megóv az SQL Injection káros hatásaitól.
    Remélem nálad adott a MS SQL Server Management Studio akkor egyszerű a feladat.
    Kreálsz egy adatbázist (ha még nem lenne), létrehozod benne azt a táblát amelyben a user-ek kutakodását biztosítani kívánod.
    Legyen a tábla neve pl.
    Partnerek
    oszlopai:
    PartnerID,
    Neve,
    Cime
    ..stb.
    A Management Studio-val rögtön adatokat is vihetsz a tábládba, igy lesz miben keresni.
    Ezek után térjünk át a Megjelenítés témakörére!

    A Management Studio-t bezárhatod, most a Visual Studio-t használjuk a továbbiakban.
    Kreálsz egy új alkalmazást Visual Basic - Windows Application és a neve legyen pl. Kereso!
    Kapsz egy üres form-ot (Form1).
    A Data menü-ben kattints a Show Data Sources-re s előjön egy ablak - közepén felirattal:
    Add New Data Source
    Kattints rá!
    A Data Source Configuration Wizard végigvezet egy dataset létrehozásán ( a connectionstring-től a táblák kiválasztásáig).
    Most nem részletezek mindent, mert lehet, hogy már a kisujjadban az egész, inkább csak a tábla részét említeném.
    Nem jelölsz ki semmit a táblák közül!
    Ez egy trükk, de megéri.
    Meg fogja kérdezni a varázsló, hogy tényleg üres dataset-et akarsz-e létrehozni, Igen legyen a válaszod.
    Majd a Data Source ablakban újra előveszed a dataset-edet s kéred a módosítását ( edit dataset with designer).
    Kijön egy .xsd ablak, s rákattintva (jopbb gombbal) választod az
    Add TableAdapter-t.
    Jön az ismert varázsló, s előbb katt a Next-re, majd a második ablakban bejelölöd a Create new stored procedures-t, és Next!
    Az új ablakban segítségül hívod a Query Bilder-t (katt a gombra).
    Kiválasztod a Partnerek táblát.
    Bejelölöd az All Columns checkbox-ot.
    A harmadik ablakrészben megjelenik:

    SELECT Partnerek.* FROM Partnerek
    Ezt kiegészíted egy Where feltétellel:
    WHERE Megnevezes=@Megnevezes
    Az eredményt rögtön ellenőrizheted, katt jobbgombal az ablakra, s
    Execute SQL
    Megadod a keresett nevet s értékeled az eredményt.
    Nos, ha minden ok, akkor katt az Ok gombra , s visszatérünk a varázslóhoz a QueryBilder-ből. Itt katt a Next-re.
    A következő ablakban láthatod az új tárolt eljárások felsorolását, átnevezheted őket pl. Usp_select_Partnerek, stb.
    Még két Nex - katt, s Finish!
    Most már van táblád is a dataset-ben.
    Mented az .xsd oldalt s ismét nyitod a Data Source ablakot.
    A dataset-et kinyitod, látod a friss tablaadapteredet (Partnerek),
    egy refresh után az adapter neve mellett jobbra megjelenik egy nyíl (lefele muttat) erre kattintva beállíthatod a megfelelő formációt (jelen esetben maradjunk a datagridview-nál).
    Húzd rá a form-odra a tablaadaptert.
    A látvány önmagáért beszél.
    Megvan minden, mit kívántál, de ezt még lehet bonyolítani, ha akarod, ám már így is hosszúra sikeredett a körmölésem, úgy hogy ennyit egyenlőre.
    Sok sikert!
    Mutasd a teljes hozzászólást!
  • nekem az lenne a kérdésem lehetséges-e a dataGridView-ba beírt adatokat sql-be menteni..
    szóval user kitölt egy sort, akkor az mentődjön el az sql-be
    Mutasd a teljes hozzászólást!
  • Áhhh, kizárt dolog.
    Ilyen komoly feladatokra nem alkalmas sem a VB, sem a framework.
    Ehhez minimum C++, de inkább ASM kell.
    Mutasd a teljes hozzászólást!

  • Bocsi, de néked mi jut eszedbe arról , hogy 'Kakukktojás'?
    Mutasd a teljes hozzászólást!
  • igazából c#-ban csinálom a dolgot, ott akadok el, hogy meghívom az adapterre az update metódust és kiírja, hogy:
    Frissítéskor nem található: TableMapping['Table'] vagy a(z) "Table" adattábla.

    ha példányosítom a datatable-t és azt kapja az update paraméternek, akkor lefut, de az sql-ben nem történik update..
    tudnátok ebben segíteni?
    örök hálám!
    Mutasd a teljes hozzászólást!
  • A DataTable minden sorának van egy RowState property-je. Ezen a property-n múlik, hogy az adapter milyen változtatást eszközöl az adatbázison. Értékét -soronként- a SetAdded || SetModified metódussal is állíthatod.
    Mutasd a teljes hozzászólást!
  • Mondják, a kakukk gyakran más madarak fészkébe rakja tojását.

    Nagyobb esélyed lenne megfelelő válaszra, ha nyitnál egy saját topikot a kérdésednek.
    Még jutalmazhatnád is néhány pontocskával a legjobb válasz íróját.

    Talán elkerülte a figyelmedet:


    Üdvözlünk a Prog.Hu tudástárában! Amennyiben még nem tudod, hogy a tudástár mire való és miként kell használni, akkor mindenképpen olvasd el
    a leggyakrabban feltett kérdések-
    et, és a hozzájuk kapcsolódó válaszokat tartalmazó dokumentumot!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd