Avatar billede tubber Juniormester
20. april 2016 - 17:50 Der er 11 kommentarer og
1 løsning

Er det muligt at arbejde dirkte i databasen eller skal man lave et dataset ?

Jeg har en database med nogle pre definerede værdier, og skal ved en handling opdatere en record i databasen.

Syntes bare lidt dataset og datagridview er overflødigt når det eneste jeg skal er at opdatere en post hvor primærnøglen er kendt ud fra et tekstfelt.

Tænkte noget ala det her:


"UPDATE Table SET rsValue = '" & rsValue - 1 & "'
        WHERE rsPrimary = " & txtPrimary.Text & ";"


Håber det giver mening ?

Mvh
Ryan Frandsen
Avatar billede arne_v Ekspert
20. april 2016 - 18:38 #1
Du kan bruge ADO direkte.

Hvis SQLServer saa SqlConnection og SqlCommand instanser og Execute din SQL saetning.

Du bor dog absolut bruge parameters og ikke streng konkatanering til at faa vaerdierne ind.
Avatar billede tubber Juniormester
20. april 2016 - 18:55 #2
Det er en access fik jeg ikke lige med - beklager.

Og det betyder lige helt nøjagtigt ?
Avatar billede arne_v Ekspert
20. april 2016 - 19:11 #3
Saa skal du bruge OleDbConnection og OleDbCommand
Avatar billede tubber Juniormester
20. april 2016 - 20:48 #4
Kan jeg arbejde direkte med db eller skal det ind i dataset ?

Eller kan jeg lave en connection noget ala det her:

Dim Con As New OleDb.OleDbConnection   
        Dim dbProvider As String       
        Dim dbSource As String 
        Dim dbFolder As String 
        Dim dbName As String   
        Dim dbPath As String   
        Dim sql As String             
        Dim cmdOLEDB As New OleDbCommand
        Dim cmdUpdate As New OleDbCommand


        dbProvider = "Provider=Microsoft.Jet.OLEDB.4.0;"
        dbName = "Lager_Beholdning.mdb"
        dbFolder = "d:\"
        dbPath = dbFolder & dbName
        dbSource = "Data Source = " & dbPath

        Con.ConnectionString = dbProvider & dbSource
        Con.Open()

        cmdUpdate.CommandText = "UPDATE Table SET rsValue = '" & rsValue - 1 & "'  WHERE rsPrimary = " & txtPrimary.Text & ";"
                cmdUpdate.CommandType = CommandType.Text
                cmdUpdate.Connection = con
        cmdUpdate.ExecuteNonQuery()
        Con.Close()
Avatar billede arne_v Ekspert
20. april 2016 - 21:00 #5
saadan der

bortset for at du stadig boer bruge parameters fremfor streng konkatanering
Avatar billede tubber Juniormester
20. april 2016 - 21:03 #6
hvad er forskellen på parametre og konkatanering ?
Avatar billede arne_v Ekspert
20. april 2016 - 21:13 #7
Avatar billede tubber Juniormester
21. april 2016 - 07:39 #8
Må blive den "nemme" løsning i første omgang, skal vist lige læse lidt mere på det :) men ser spændende ud.

Der er lige en stavefejl i det om parameters, du skriver ADO.BNET  går ud fra der skulle stå ADO.NET

Og så snakker du om ADO.NET i indledningen men eksemplerne er OleDB måske en lille forklaring på dette :)

Smider du et svar så er der point :)

Mange tak for hjælpen
Avatar billede arne_v Ekspert
21. april 2016 - 16:46 #9
ADO.NET daekker over hele det basale database framework:

DbConnection og DbCommand for enhver database
SqlConnection og SqlCommand for SQLServer
OldDbConnection og OleDbCommand for Access og andet som tilgaaes via native OLE DB provider
OdbcConnection og OdbcCommand for noget som tilgaaes via ODBC driver
tredie parts XxxConnection og XxxCommand
Avatar billede arne_v Ekspert
21. april 2016 - 16:46 #10
svar
Avatar billede arne_v Ekspert
21. april 2016 - 16:47 #11
Jeg ville aldrig bruge DataSet.

Enten raa ADO.NET og SQL.

Eller et ORM saasom EF eller NHibernate.
Avatar billede tubber Juniormester
22. april 2016 - 13:41 #12
Mange tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester