Użycie innych zapytań SQL niż domyślnie dostępne w VB .NET

0

Witam
Jak można użyć innych zapytać SQL / MySQL w VB .NET oprócz standardowych INSERT, SELECT, UPDATE, DELETE ??
Mam na myśli np.

load data local infile "dane.txt" into table dane;

lub

ALTER TABLE pracownicy ADD dzial VARCHAR(255);

lub

DROP TABLE pracownicy;

lub nawet trochę bardziej zawiły SELECT typu:

    select concat(imie," ",nazwisko)
    as "Imie-Nazwisko"
    from dane
    where miasto<>"Warszawa" AND data_ur > "1970-01-01"
    order by nazwisko desc
    limit 3;

Podane powyżej instrukcje mi nie chcą zadziałać i nie wiem czemu.
Nie jestem programistą, więc bardzo proszę o odpisywanie prostym językiem :)

Używam: (piszę bo jest wiele rodzajów)

Imports System.Data.OleDb oraz System.Data

Provider = microsoft.jet.oledb.4.0

OleDb.OleDbCommand do zapytań SQL

Baza danych: Access 2003

Kompilator: MS Visual Studio 2010

0

nie chcą działać bo robisz coś źle. Pokaż kod i jaki występuje błąd

0
Imports System.Data             'daje dostęp do ADO.NET - pozwala używac komponentów do zarządzania danymi z wielu źródeł
Imports System.Data.OleDb       'do odbierania danych i ich aktualizacji


Module myconnection
    Public Polaczenie As New OleDb.OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\dbstudent.mdb")        'plik bazy -   Access 2003 .mdb,   2007 .accdb

    Public Sub dodaj(ByVal lvw As ListView, ByVal id As String, ByVal imie As String, ByVal nazwisko As String, ByVal plec As String, ByVal urodziny As String, ByVal Miasto As String)
        Dim lv As New ListViewItem
        lvw.Items.Add(lv)
        lv.Text = id
        lv.SubItems.Add(imie)
        lv.SubItems.Add(nazwisko)
        lv.SubItems.Add(plec)
        lv.SubItems.Add(urodziny)
        lv.SubItems.Add(Miasto)
    End Sub
End Module


Public Class Form1
    Dim oddr As OleDbDataReader     'odczyt danych z bazy danych


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Polaczenie.Close()
        Polaczenie.Open()              'tutaj wywalał błąd, że połączenie jest otwarte - dlatego najpierw trzeba je zamknąć
        Dim cmd As New OleDb.OleDbCommand("INSERT INTO tblstudent VALUES ('" & Me.TextBox1.Text & "','" _
                                          & Me.TextBox2.Text & "','" _
                                          & Me.TextBox3.Text & "','" _
                                          & Me.ComboBox1.Text & "','" _
                                          & Me.DateTimePicker1.Text & "','" _
                                          & Me.TextBox4.Text & "');", Polaczenie)

        cmd.ExecuteNonQuery()           'informacja dot. ilości wierszy
        Polaczenie.Close()
        dodaj(Me.ListView1, Me.TextBox1.Text, Me.TextBox2.Text, Me.TextBox3.Text, Me.ComboBox1.Text, Me.DateTimePicker1.Text, Me.TextBox4.Text)     'doda tekst z TextBoxów do bazy danych
        Me.ListView1.Items.Clear()      'odświeżanie ListView
        wczytaj()
    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.ListView1.Columns.Add("ID", 70)
        Me.ListView1.Columns.Add("Imię", 120)
        Me.ListView1.Columns.Add("Nazwisko", 150)
        Me.ListView1.Columns.Add("Płeć", 100)
        Me.ListView1.Columns.Add("Urodzony", 100)
        Me.ListView1.Columns.Add("Miasto", 239)
        Me.ListView1.View = View.Details
        Me.ListView1.GridLines = True

        wczytaj()
    End Sub


    Sub wczytaj()
        Polaczenie.Open()
        Dim cmd As New OleDb.OleDbCommand("select * from tblstudent", Polaczenie)

        oddr = cmd.ExecuteReader            'wszystkie rekordy z bazy danych
        While oddr.Read()                   'jeśli TRUE to przechodzi do następnego wiersza
            Call dodaj(Me.ListView1, oddr(0).ToString, oddr(1).ToString, oddr(2).ToString, oddr(3).ToString, oddr(4).ToString, oddr(5).ToString)
            Me.TextBox1.Text = CStr(CDbl(oddr(0).ToString) + 1) 'Mid(CStr(oddr(0)), 3) + 1)
        End While
        Polaczenie.Close()
    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Polaczenie.Close()
        Polaczenie.Open()
        Dim cmd As New OleDb.OleDbCommand("DELETE from tblstudent WHERE ID='" & Me.TextBox1.Text & "';", Polaczenie)
        cmd.ExecuteNonQuery()
        Polaczenie.Close()
        Me.ListView1.Items.Clear()          'odświeżanie ListView
        wczytaj()
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Polaczenie.Close()
        Polaczenie.Open()
        Dim cmd As New OleDb.OleDbCommand("UPDATE tblstudent SET Imię='" _
                                          & Me.TextBox2.Text & "', Nazwisko='" _
                                          & Me.TextBox3.Text & "', Płeć='" _
                                          & Me.ComboBox1.Text & "', Urodzony='" _
                                          & Me.DateTimePicker1.Text & "', Miasto='" _
                                          & Me.TextBox4.Text & "' WHERE ID='" _
                                          & Me.TextBox1.Text & "';", Polaczenie)
        cmd.ExecuteNonQuery()
        Polaczenie.Close()
        Me.ListView1.Items.Clear()          'odświeżanie ListView
        wczytaj()
    End Sub


    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Polaczenie.Close()
        Polaczenie.Open()
        Dim cmd As New OleDb.OleDbCommand("load data local infile 'dane.txt' into table tblstudent;", Polaczenie)
        Dim OdebraneDane As OleDbDataReader = cmd.ExecuteReader
        OdebraneDane.Read()


        'MessageBox.Show(OdebraneDane.Item("ID").ToString, "Nazwa firmy")
        'cmd.ExecuteReader()         'zmiana
        Polaczenie.Close()
        Me.ListView1.Items.Clear()
        wczytaj()
    End Sub
End Class

Wszystko działa oprócz Private Sub Button5_Click, który mnie blokuje w rozbudowie o dalsze instrukcje.

0

Polecenie z MySQL ma zadziałać w Jet-SQL??

0

Fajnie. Może konkretniej? :)
Program łączy się z tabelą w Accessie, więc rozumiem, że nie można tu stosować MySQL.
Nie zależy mi konkretnie na MySQL, tylko na tym, żeby w sposób najprostszy móc wykonywać inne, czasem złożone komendy SQL.
Jakiś opis jak to można zrobić?

0

Korzystasz z bazy Access, to MUSISZ korzystać z Jet-SQL-a. Żadnego innego. Zresztą każdy DBMS wytworzył swój własny SQL, który jest w mniejszym lub większym stopniu zgodny ze standardem. (ze standardem ANSI tylko jedna z baz).
A co możesz...
Odpowiedź jest prosta - wręcz prostacka: wszystko, co jest opisane tu: http://msdn.microsoft.com/en-us/library/aa140011(v=office.10).aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1