Zum Inhalt springen

C# Datenbankverbindung


Empfohlene Beiträge

Geschrieben

Hallo, ich habe ein großes Problem.

Nur zur kurzen Erklärung, mit C# und SQL habe ich quasi gar keine Erfahrung. Meine Ausbildung hat neu begonnen.

Problem bzw Aufgabe:

Ich soll in Microsoft Visual Studio ersteinmal nur ein Button anlegen.

Ersteinmal habe ich ein neues Projekt in C# (Windowas Anwendungen angelegt).

Ich habe unter Form1.cs ein Formular mit dem Button "Verbinden" angelegt

Langfristig soll aus dem Button eine ganze Applikation werden.

Ich brauche über die Applikation die Möglichkeit in die Datenbank zu schreiben, zu lesen und das Datum einzugeben.

Wenn auf diesen Button geklickt wird, soll eine Verbindung zur einer bereits vorhandenen SQL Server Datenbank erstellt werden.

Langfristig soll aus dem Button eine ganze Applikation werden.

Ich brauche über die Applikation die Möglichkeit in die Datenbank zu schreiben, zu lesen und das Datum einzugeben.

Wie soll ich das angehen? Kennt sich da jemand aus?

Danke schon einmal für eure Antworten, falls welche folgen sollten :)

LG, Azubine27

Geschrieben

Eine Möglichkeit wäre z.B. ADO.NET

Hier mal ein kurzer Artikel dazu:

Datenbankzugriff mittels ADO.NET

Ich denke das sollte mal ein paar grundlegende Fragen beantworten.

Auf was für eine DB willst denn zugreifen? Access, MS-SQL, Oracle, MySQL...?

<edit>

Ich seh grad, daß der Link nicht so der Brüller ist. Ich such mal was Verständlicheres.

</edit>

Geschrieben

Danke. Ein noch besserer Link wäre gut.

Mein Problem, die gewissen Statements habe ich schon ab und zu gesehen, nur nie daraus erkennen können, wie ich genau zu meiner Datenbank den Zugriff erhalte. Also mit meinem Server und meiner Datenbank.Klingt komisch, ich weiß, aber als Anfänger ist es schwer sich richtig auszudrücken. :-)

Eine Microsoft SQL Server DB.

Geschrieben

@Guybrush Threepwood:

Weil mir die Anweisungen nichts sagen, komme ich noch nicht weiter.. Hatte ja auch sofort bei msn nachgesehen.

[C#]

public void InsertRow(string myConnectionString)

{

// If the connection string is null, use a default.

if(myConnectionString == "")

{

myConnectionString = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;";

}

SqlConnection myConnection = new SqlConnection(myConnectionString);

string myInsertQuery = "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";

SqlCommand myCommand = new SqlCommand(myInsertQuery);

myCommand.Connection = myConnection;

myConnection.Open();

myCommand.ExecuteNonQuery();

myCommand.Connection.Close();

}

Was soll ich damit machen? bzw wo gebe ich die Datenbank ein, mit der ich die Applikation hinter meinem Button verknüpfen soll? Wie erwähnt,

absoluter Neuling. Jetzt lacht mich bitte nicht aus. Da ich es sehr wohl sehr ernst nehme mit dieser Ausbilung. Ist mir ja schon peinlich genug, dass ich nicht weiter komme trotz so vieler netter Hilfe.

Geschrieben

Im Connection-String (in deinem Beispiel myConnectionString) gibst du an, mit welcher Datenbank du dich verbinden willst.

Da meine C#-Kenntnisse ziemlich rudimentär sind, klink ich mich hier aus. Es gibt sicher Mitglieder aufm Forum, die dir besser helfen können als ich. ;)

Geschrieben
Wie erwähnt,

absoluter Neuling. Jetzt lacht mich bitte nicht aus. Da ich es sehr wohl sehr ernst nehme mit dieser Ausbilung. Ist mir ja schon peinlich genug, dass ich nicht weiter komme trotz so vieler netter Hilfe.

Das hat nichts damit zu tun dich auszulachen oder das dir das peinlich sein müsste.

Aber ich seh da wirklich nur 2 Möglichkeiten. Entweder du kommst da nicht weiter weil dir die kompletten Grundlagen fehlen, in dem Fall solltest du die erstmal durcharbeiten bevor du mit dem Thema Datenbanken anfängst.

Oder 2. die Informationen in der MSDN dazu sollten dir helfen das Problem zu lösen. Denn da steht das du dem Konstruktor direkt den ConnectionString zur Datenbank übergeben kannst.

SqlConnection-Konstruktor (String) (System.Data.SqlClient)

und wenn du da unter Hinweise auf ConnectionString klickst bekommst du eine genaue Erklärung samt Beispiel wie so ein ConnectionString aufgebaut ist.

SqlConnection.ConnectionString-Eigenschaft (System.Data.SqlClient)

Also z.B. das Data Source den SQL Server angbit und Initial Catalog die Datenbank im Server.

Man muss ja nicht alles auf den Seiten komplett verstehen, sondern nur die für einen selbst wichtigen Information rauslesen.

Geschrieben

@Guybrush Threepwood:Da kann ich dir nur zustimmen.

Die Grundlagen fehlen wirklich. Aber was soll ich machen, wenn mein Ausbilder mir die Aufgabe gegeben hat. Mein Ausbilder ist aktuell im Urlaub und hat mir ein Projekt gegeben. Ich soll mit einer Applikation auf eine Datenbank zugreifen. Die Datenbank konnte ich schon modellieren und anlegen, aber bei dem Rest, weiß ich echt nicht wie ich das in so kurzer Zeit schaffen soll.

Ich würde viel lieber erstmal nur mit den Grundlagen anfangen. Naja, diese Woche bin ich krank. Und wenn ich Montag wieder komme möchte ich eben wenigstens schon mit diesem Button und der Verbindung zum Internet wieder kommen. Damit das nicht ganz so armselig aussieht.

Geschrieben

Ja das ist dann natürlich etwas blöd.

Grundsätzlich ist eins der tollen Dinge bei den .Net Sprachen das man sehr viel über den Designer machen kann ohne auch nur eine Zeile Code schreiben zu müssen.

Je nach Anforderung an das Programm kannst du so zum Beispiel einfach ein Grid auf deine Form ziehen und dieses dann mit dem Wizard direkt an deine Datenbank bzw. Tabelle binden. Hab das aber noch nie in einer Windows Forms Anwedung gemacht, da ich mehr (bzw. fast nur) auf der ASP.NET Seite tätig bin und das da alles ein wenig anders läuft.

Auf jeden Fall ist es von imensem Wert wenn man erstmal raus hat (auch das muss man lernen) wie man sich am Besten Informationen zu seinen Problemen beschafft. Also auch wenn es am Anfang undurchsichtig und unverständlich erscheint, solltest du fleißig weiter in der MSDN stöbern denn die ist dein bester Freund und Helfer dabei. Wobei du natürlich hier immer Hilfe bei konkreten Problemen findest ;)

Wenn du die Datenbankverbindung hergestellt hast kannst du über

die SqlCommand Klasse darein schreiben bzw davon lesen...

Geschrieben

Hallo,

habe mir ein paar Word-Dokumente angelegt, in denen so einiges erklärt ist.

Wenn du möchtest, kann ich sie dir schicken und dir einiges erklären, wenn du magst.

Gruß

Alex

ps: allen anderen natürlich auch ;)

Geschrieben

Hiir eien gleinäs Peisbiel: ;)


string connection_string = "Data Source=ServerName;Initial Catalog=Dein DatenbankName;Persist Security Info=True;User ID=DeineID;Password=DeinPasswort";

string sql = "Select * from DeineTabelle;";

DataSet datSet;


using (SqlConnection connection = new SqlConnection(connection_string))

{

   SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

   datSet = new DataSet();

   adapter.Fill(datSet, "DeineTabelle");

   dataGridView1.DataSource = datSet.Tables["DeineTabelle"];

}

Dieses Beispiel geht von einer MSSQL-Datenbank aus!

Wenn dir was unklar ist, frage nach!

Um dich ein wenig vertraut mit ADO.NET zu machen empfehle ich dir das Ebook "galileocomputing_visual_csharp", kannst du dir runterladen irgendwo im Netz (google) oder ich schicke es dir!

Gruß

Alex

  • 1 Jahr später...
Geschrieben

hallo alle zusammen,

ein dickes DANKE an alle die mir bisher geholfen haben.

nun begebe ich mich mal lieber in c# zurück. da möchte ich ein programm mit einer datenbankanbindung, hier mit sql server management express edition, machen.

tabellen habe ich bereits soweit angelegt, pk usw.

jetzt möchte ich die tabellen als anbindung in visual studio 2008 einbringen.

u da besteht leider mein problem.

hoffe ihr könnt mir dabei etwas helfen.

gruss hippu:confused:

  • 2 Wochen später...
Geschrieben
ok, und was genau ist dein problem?

datenquelle anlegen? tabellen einbinden? daten darstellen? daten bearbeiten?

bitte mal ein bissl ausführlicher werden.

s'Amstel

hallo,

sry das ich mich erst jetzt melde. mein pc der funtz nicht mehr so richtig.

bezüglich datenquelle die habe ich soweit schon angelegt mit tabellen und pk. das einzige problem beim anlegen habe ich mit tabellen wo mehrere tabellen zusammen kommen, sozusagen eine hilfstabellle.:confused:

jedoch besteht das zunächst das eigentlich problem darin, die tabellen in vs 2008 einzubinden bzw. dass ich von vs auf den sql management server express edition nicht darauf zugreifen kann.:confused:

ich hoffe sehr das ihr mir da weiterhelfen könnt. wäre echt lieb von euch.

gruss hippu

Geschrieben
Hiir eien gleinäs Peisbiel: ;)


string connection_string = "Data Source=ServerName;Initial Catalog=Dein DatenbankName;Persist Security Info=True;User ID=DeineID;Password=DeinPasswort";

string sql = "Select * from DeineTabelle;";

DataSet datSet;


using (SqlConnection connection = new SqlConnection(connection_string))

{

   SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

   datSet = new DataSet();

   adapter.Fill(datSet, "DeineTabelle");

   dataGridView1.DataSource = datSet.Tables["DeineTabelle"];

}

Dieses Beispiel geht von einer MSSQL-Datenbank aus!

Wenn dir was unklar ist, frage nach!

Um dich ein wenig vertraut mit ADO.NET zu machen empfehle ich dir das Ebook "galileocomputing_visual_csharp", kannst du dir runterladen irgendwo im Netz (google) oder ich schicke es dir!

Gruß

Alex

hallo alex,

ich bin zur zeit in einer ähnlichen situation wie damals Azubine27. habe auch schon einige bücher gefälzt und komme aber nicht weiter bezüglich datenbank.

habe mal versucht mit dem sql management server express edition einige tabellen anzulegen (hat auch gefuntz ;) ). nur ich bekomme keine conection über vs 08 bzw. kann keine verbindung erstellen. außerdem gibt er nicht an wo er das ganze gesave hat.

außerdem 1 frage vorweg:

1. soll ich weiterhin noch mit diesem programm arbeiten oder soll ich lieber mysql nehmen? mit access möchte ich nicht arbeiten, da mir diese zu instabil ist bei höhrere datensätze.

gruss hippu

Geschrieben

Hallo,

ich bin hinsichtlich Datenbanken etc. schon immer der Ansicht, man sollte sich einfach die Zeit nehmen und sich mit der Materie beschäftigen. Letztendlich um zu verstehen was dort passiert und man Interaktionen mit Datenbanken immer wieder findet, zumindest im Leben eines Programmierers. An dieser Stelle einfach mal dieser Link:

Galileo Computing :: Visual C# 2008 – 25 ADO.NET – die Verbindung zu einer Datenbank herstellen

Falls es Fragen zu diesem Artikel gibt, kann man diese gern hier stellen/beantworten.

Somit viel Spaß beim Lesen/Lernen :)

Greetz

Geschrieben

hallo zusammen,

thx für die anworten.

ich habe mich fürs 1. erstmal für das einlesen der daten aus einer acces-datenbank entschieden. ich denke für den anfang sollte es erstmal reichen.

nur ich habe dabei ein problem, und zwar:

laut einem forum habe ich die connection genauso aufgebaut wie es angegeben ist. leider geht er nur bis standortConn.Open(); .

sobald dieser dort angekommen ist wirft er mittels einer messsag-box folgenden fehler raus: Installierbares ISAM nicht gefunden.

um es zu verdeutlichen habe ich mal den gesamten code hier vorgelegt:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


using System.Data.OleDb;


namespace croni

{

    public partial class Standort : Form

    {


        public Standort()

        {

            InitializeComponent();

            // Hier wird das Fenster zentriert

            CenterToParent();


        }

        /// <summary>

        /// Das DataSet-Objekt wird hier referenziert

        /// </summary>

        //private DataSet standortDataSet;



        public string standortString1 = @"Provider=Microsoft.Jet.OLEDB.4.0;DataSource =C:\Eigene Dateien\Datenbank11.mdb";


        private void btnVerbindung_Click(object sender, EventArgs e)

        {


                //OleDbConnection standortConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource =c:\Eigene Dateien\Datenbank11.mdb");

                OleDbConnection standortConn = new OleDbConnection(standortString1);


                DataSet standortDataSet = new DataSet();


                OleDbCommand standortCommand = new OleDbCommand("SELECT Standort.* FROM Standort", standortConn);

                textBoxenLeeren();


                OleDbDataAdapter standortAdapter = new OleDbDataAdapter("SELECT Standort.* FROM Standort", standortConn);


                try

                {

                  standortConn.Open();

                 standortAdapter.Fill(standortDataSet, "Standort");

                standortConn.Close();


                MessageBox.Show("Verbidnung geklappt");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

 private void btnStandortVor_Click(object sender, EventArgs e)

          {



          }


          private void textBoxenLeeren()

          {

              tbStandortGeschaefststelle.Clear();

              tbStandortHausnummer.Clear();

              tbStandortOrt.Clear();

              tbStandortPLZ.Clear();

              tbStandortStrasse.Clear();

              tbStandortName.Clear();


          }

}

} 

ich hoffe ihr könnt mir helfen den fehler zu finden. weis ehrlich gesagt nicht mehr weiter.:confused:

gruss hippu

Geschrieben
Ein Blick auf diese Seite verrät mir, das du einen Tippfehler im Connectionstring hast.

Access 2007 Connection String Samples - ConnectionStrings.com

Moin,

habe den fehler gefunden. thx für den tipp mit der seite.

die daten werden jetzt eingelesen und angezeigt.

jetzt werd ich mich mal an die anderen funktionen wie hinzufügen, löschen und updaten von ds ran machen^^

falls was sein sollte meld ich mich nochmal.

schönen tag wünsch ich euch allen heute.

gruss hippu:confused:

  • 3 Wochen später...
Geschrieben

moinsen alle zusammen,

nochmals danke für die tipps. :uli

ich habe es auch geschafft durch die einzelnen ds zu blättern, zu löschen, updaten.

aber das funktioniert nur auf einer registerkarte. auf den anderen 6 registerkarten funktionieren diese aber nicht, obwohl das vom sourcecode 'fast' identisch ist, jedoch aber immer die verwendeten variablen entsprechend der registerkarte abgeändert sind.

an diesem problem hänge ich schon seit 3 tagen fest und weis nicht mehr weiter.:old

hoffe das ihr mir da weiterhelfen könnt.

gruss hippu:confused:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...