Newbie hat da mal ein paar Fragen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von m__o__e.

    Newbie hat da mal ein paar Fragen

    Hallo liebe Forumgemeinde,

    bin neu hier im Forum und auch neu im Bereich Desktopanwendungen. Komme eigentlich aus dem Bereich Webanwendungen und habe mich dort meist mit php, javascript und MySQL beschäftigt. Nun habe ich mich mal bei google umgesehen, welche Sprache denn wohl für mich in Frage kommt und bin bei VB angekommen.

    Also um nicht direkt viel Geld auszugeben habe ich mir VB express in Kombination mit einer SQL server express runtergeladen, um einfach mal einen ersten Einblick zu bekommen. Ganz hilfreich dazu fand ich auch die Einführungsvideos auf der MS Seite und hab mir diese schonmal zu Gemüte geführt.

    Habe auch schon erste kleine Programme geschrieben um einfach mal ein bisschen was auszuprobieren und soweit bin ich auch erstmal gut zufrieden.

    Nun wollte ich mal etwas anspruchsvolles probieren und zwar soll es eine Adressdatenbank mit Import (xls) und Export (xls), auf Basis eine SQL DB werden.

    Nun die Fragen:

    1) Sind die Expressvarianten ausreichend für mein Vorhaben?
    2) Gibt es für SQL etwas wie eine Adminoberfläche, in der ich Datenbanken erstellen und die Felder bearbeiten kann? Wenn ja, wo?
    3) Hat jemand einen guten Link zu SQL Kollationen und der Zeichenkodierungseinbindung in VB?
    4) Ist es richtig eine SQL DB zu nehmen? Wollte es erst über Access machen, las aber dann das die bei 1GB an Ihre Grenzen stößt

    Freue mich auf eure Antworten :)

    Gruß

    MOE

    picoflop schrieb:

    1 ja
    2 ja - sql server management studio - technet.microsoft.com/de-de/library/ms365247.aspx
    3 grübel ... ne ;) Wofür braucht man das? Unicode rules!
    4 SQLSE ist ok. DB abstraction layer dazu, dann kann man auch schnell auf MySQL oder PostGreSQL umsteigen
    Also erstmal Danke für die fixe Antwort :)

    zu2) Hab ich mir gerade runtergeladen - sieht hilfreich aus.

    zu3) Ja das sollte passen. Habe online immer mit UTF8 gearbeitet.

    zu4) Danke für den Tip

    werd mich dann mal an die Arbeit machen und bestimmt werdet ihr bei Unklarheiten noch öfters mal von mir hören ;)
    Du kannst natürlich auch weiter mit MySQL Datenbanken arbeiten, und mit PHP Erfahrung wirst du keine Probleme mit VB haben, ist vom Lernaufwand für die wichtigsten Sachen wie PHP "übers Wochenende zu lernen", um mal die ersten größeren Erfolge zu haben.
    Solltest du doch mit MSSQL arbeiten würde ich dir zu MSSQLC raten, klein, flexibel und vor allem sind die redistfiles nur knapp über 2MB groß, was das ganze eigentlich recht klein hält, und auch überall läuft.
    Und die Geschwindigkeit ist auch sehr gut, beim durchsuchen einer Tabelle mit 10.000 Entrys mit knapp über 500 Treffer dauert das ganze eine knappe Sekunde unoptimiert.
    Außerdem muss dazu kein Dienst oder sonstiges installiert werden :)
    Und mit VB in Kombination mit PHP lassen sich richtig schöne Sachen machen, da kann man auch mal mit Streams von VB zu PHP rumspielen wenn man mal Dateien übertragen oder Daten austauschen will ;)
    Und Updater oder sonstiges ist mit PHP und VB überhaupt kein Problem, für ein einziges File sowieso selbsterkärend, für etwas mehr ist CSV bzw XML ganz nett für die Liste der Files mit Hash, oder wenn man AJAX bzw JS Style mag dann halt JSON.
    Und Visual Studio ist auch ganz nett da es einem eine Menge Tipparbeit erspart wenn schon das richtige vorgeschlagen wird ;)
    Grausig wirds nur wenn du länger bei VB bleibst und dann nach längerer zeit mal wieder was mit PHP machst... da liegt dir evtl der C# Syntax mehr, ist PHP ähnlicher und im Grunde das selbe wie VB.
    Sollte dir der Syntax und auch die Funktionen von VB oder C# gefallen kann ich dir ASP .Net sehr ans Herz legen.
    Der Unterschied zu PHP ist enorm, war früher sehr von PHP überzeugt, aber das ist nun schon lange her... :D
    Trotzdem kommt es noch des öfteren zum Einsatz, aber ich bevorzuge ASP .Net C#
    Insgesamt liegt mir persönlich der C# Syntax mehr, VB wirkt weniger wie eine Programmiersprache auch wenns eigentlich eine ist.. aber gibt Konverter mit denen man VB zu C# konvertieren kann und umgekehrt, also läufts sowieso aufs selbe raus.
    Soll im Grunde nur bedeuten selbst wenn du in C# arbeitest bist du hier richtig, das meiste kann (mehr oder weniger) 1:1 "übertragen" werden ;)
    Hi Boolean,

    erstmal danke für die lange Mitteilung :) Also einen Unterschied zur Syntax habe ich schon festgestellt: Ich setze ständig ; wo sie nicht hingehören!!!!! Ich habe mir das komplette Paket an Express Geschichten geladen und werde mich da mal ein wenig umsehen und ausprobieren. Sollte ASP wirklich so nützlich sein wird es sicherlich auch bei mir zur Anwendung kommen.

    Hab gerade angefangen mal ein bisschen mit der SQL Server Variante rumzuspielen und ich habe die DB zwar über "Projekt / Neues Element hinzufügen" an mein Projekt angebunden aber wenn ich über die Programmierung connecten will, dann sagt er mir das die Datei von einem anderen Prozess verwendet wird :( Hab die Tage das ganze mit na Access ausprobiert das lief einwandfrei. Weiß jemand nen Rat?

    m__o__e schrieb:

    Hi Boolean,

    erstmal danke für die lange Mitteilung :) Also einen Unterschied zur Syntax habe ich schon festgestellt: Ich setze ständig ; wo sie nicht hingehören!!!!!


    Genau das meinte ich, deshalb ist C# wohl besser für dich geeignet ;) Liegt mir auch mehr.
    Und wenn du Probleme hast jagst dus durch den Konverter und postest hier die VB Variante.
    Aber bei C# Problemen kann dir hier bestimmt auch geholfen werden. Weiss nur nicht wie das kommt in einem VB Forum... :D
    Natürlich kannst du dich aber auch in VB einarbeiten, die Syntaxumstellung ist halt anfangs das größte Problem, und der Unterschied ist irgendwie doch etwas grausam wenn man an einer Anwendung arbeitet die auch Daten aus dem Internet, die man selbst zur Verfügung stellt, verarbeitet etc.

    m__o__e schrieb:

    Ich habe mir das komplette Paket an Express Geschichten geladen und werde mich da mal ein wenig umsehen und ausprobieren. Sollte ASP wirklich so nützlich sein wird es sicherlich auch bei mir zur Anwendung kommen.


    Ich finde eigentlich nur Vorteile. Nachteil ist halt das es am besten auf einem Windows Server läufst, aber ein Linux vServer mit Mono sollte es auch tun.
    Hab mit ASP schon richtig interessante Webapplikationen realisiert, die in PHP so nicht möglich gewesen wären.
    Klar kann PHP auch viel, und für kleinere Apps verwende ich Serverseitig PHP, aber insgesamt bin ich mehr von ASP überzeugt.
    Im Grunde ist ASP so wie PHP eine Serverseitige Programmiersprache, aber allein dadurch das die kompilliert wird ist sie, nach dem ersten mal, um ein vielfaches schneller als PHP.

    m__o__e schrieb:

    Hab gerade angefangen mal ein bisschen mit der SQL Server Variante rumzuspielen und ich habe die DB zwar über "Projekt / Neues Element hinzufügen" an mein Projekt angebunden aber wenn ich über die Programmierung connecten will, dann sagt er mir das die Datei von einem anderen Prozess verwendet wird :( Hab die Tage das ganze mit na Access ausprobiert das lief einwandfrei. Weiß jemand nen Rat?


    Hast du schonmal das Projekt geschlossen und wieder geöffnet?
    Und bist du nicht mit einem Administrationstool eingeloggt?
    Hab mit MSSQL bisher nur Serverseitig gearbeitet, für Clientanwendungen verwende ich immer nur MSSQLC...
    Hi Boolean,

    ich werde mal erstmal VB in Angriff nehmen und schauen wie weit ich damit komme. Hab das mit dem SQL Server vorhin mal kurzzeitig verworfen und wollte es mit einer Access ausprobieren. Folgender Code ist relevant:

    VB.NET-Quellcode

    1. Dim con As New OleDb.OleDbConnection
    2. Dim cmd As New OleDb.OleDbCommand
    3. Dim reader As OleDb.OleDbDataReader
    4. con.ConnectionString = _
    5. "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    6. "Data Source=C:\Dokumente und Einstellungen\Admin\Eigene Dateien\Visual Studio 2008\Projects\Adressdatenbank\Adressdatenbank.mdb"
    7. cmd.Connection = con
    8. cmd.CommandText = "select * from tblContacts where FirstName = 'John'"
    9. 'ID_text.Text = cmd.CommandText
    10. Try
    11. con.Open()
    12. reader = cmd.ExecuteReader()
    13. ID_text.Text = reader("FirstName")
    14. reader.Close()
    15. con.Close()
    16. Catch ex As Exception
    17. MsgBox(ex.Message)
    18. End Try


    Ich möchte quasi mein Textfeld mit einem Datensatzeintrag füllen lassen. Funktioniert aber nicht :( Wenn ich einen Listview verwende und mit einer LOOP Schleife alle Werte ausgeben lasse läuft es.

    Orientiert habe ich mich an:

    openbook.galileocomputing.de/e…6cf6a5d64ad29137080ccb9d2

    Wo liegt der Fehler? Die Fehlermeldung der MsgBox sagt: "Keine Daten für die Zeile/Spalte." was mir ja sagt das die Abfrage jedesmal einen leeren Wert zurückgibt. Es gibt aber die Spalte FirstName und auch einen Eintrag namens John. Also kann der Fehler ja nurnoch in der technischen Umsetzung liegen, oder?

    ---------------------------

    Fehler selbst gefunden :) Hab ich wohl vergessen das reader.Read() zu setzen LOL

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „m__o__e“ () aus folgendem Grund: Fehler gefunden

    Nach ExecuteReader fehlt noch das Reader.Read um den ersten Datensatz zu selektieren. Read ist immer erforderlich!

    -> "select * from tblContacts where FirstName = 'John'"

    besser
    "select * from tblContacts where FirstName = ?"
    bzw
    "select * from tblContacts where FirstName = @name"

    und dann mit DBParamater bzw OleDbParameter
    Noch ein kleiner Tip:
    Mache die Data Source relativ zum Programm, nicht mit absoluten Pfaden, machste in PHP ja auch nicht denke ich mal.

    Den Pfad deines Programms bekommst du unter Application.StartupPath und mit der Funktion Path.Combine(Path1, Path2) lässt sich ein Pfad zusammen stückeln ohne zu achten ob nun am ende bereits ein "/" steht oder nicht. In deinem Fall würde es dann so aussehen:

    VB.NET-Quellcode

    1. con.ConnectionString = _
    2. "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    3. "Data Source=" & Path.Combine(Application.StartupPath, "Adressdatenbank.mdb")
    Danke für die Codeverbesserungsvorschläge. Sicherlich sind relative Datenpfade angebracht, aber soweit war ich noch gar nicht. Wollte nur erstmal das es überhaupt funktioniert :) Wenn ich die relative Variante nutze, als was muss ich path deklarieren?