[VB.NET] Sqlite uitlezen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • ironheart
  • Registratie: September 2022
  • Laatst online: 29-09 12:45
Hoi,

Ik ben bezig met een app die een SQL lite database uit dient te lezen.
De SQL lite tabel heet artikelen en heeft twee velden, artikelcode en omschrijving.
De code die ik gebruik is:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim SQLitecnStr As String = "Data Source=C:\Users\r.francocantero\source\repos\digital_database\database.db"
            Dim SQLiteConn As New SqliteConnection
            Dim SQLitecmd As New SqliteCommand
            Dim SQLiteReader As SqliteDataReader

            SQLiteConn.ConnectionString = SQLitecnStr
            SQLiteConn.Open()


            SQLitecmd.Connection = SQLiteConn
            SQLitecmd.CommandText = "SELECT * from artikelen LIMIT 1;"
            SQLiteReader = SQLitecmd.ExecuteReader()

            MsgBox(SQLiteReader("omschrijving").ToString)

            SQLiteReader.Close()
            SQLiteConn.Close()


Ik krijg echter een foutmelding terug:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
System.InvalidOperationException
  HResult=0x80131509
  Message=No data exists for the row/column.
  Source=Microsoft.Data.Sqlite
  StackTrace:
   at Microsoft.Data.Sqlite.SqliteDataRecord.GetValue(Int32 ordinal)
   at digital_database.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\r.francocantero\source\repos\digital_database\Form1.vb:line 44
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)


Google leert me eigenlijk nog niet veel nuttigs.
Google resultaten

Alle reacties


Acties:
  • 0 Henk 'm!

  • mvrhrln
  • Registratie: Mei 2013
  • Laatst online: 25-11-2023
https://learn.microsoft.c...?view=dotnet-plat-ext-7.0

Je moet nog een .Read uitvoeren denk ik.

Acties:
  • 0 Henk 'm!

  • ironheart
  • Registratie: September 2022
  • Laatst online: 29-09 12:45
Dat was 'm thanks!

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Doe jezelf een lol en gebruik Dapper of Entity Framework of... eender welk ander (micro)ORM. Dat vereenvoudigt jouw code tot een regel of 2, 3. ADO.Net gebruiken, wat je nu doet, is als een holbewoner stokjes tegen mekaar gaan zitten wrijven :P

Ik kan je vooral Dapper aanbevelen - die heeft een vele lagere leercurve dan EF, maar eens door die leercurve heen heeft EF ook wel z'n charmes.

Dapper voorbeeldje:
C#:
1
2
3
4
5
6
7
using var c = new SqliteConnection(@"Data Source=C:\blah\database.db");

// Alle artikelen
var all = c.Query<Artikel>("select * from artikelen");

// Specifiek artikel, netjes veilig voor SQL injection
var snowboot = c.QuerySingle<Artikel>("select * from artikelen where id = @id", new { id = 3 });


Even aangenomen dat je een Artikel class hebt met een Id property en weet-ik-het en dat je op zoek bent naar een snowboot met id 3.

[ Voor 54% gewijzigd door RobIII op 14-07-2023 18:45 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij