Azubine27 Geschrieben 6. September 2007 Geschrieben 6. September 2007 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 Zitieren
Guybrush Threepwood Geschrieben 6. September 2007 Geschrieben 6. September 2007 z.B. mit der SQLConnection Klasse. Zitieren
Azubine27 Geschrieben 6. September 2007 Autor Geschrieben 6. September 2007 Danke für deinen Tipp. Leider hat mir das überhaupt nicht weiter geholfen als Anfänger. :-( Zitieren
grueni Geschrieben 6. September 2007 Geschrieben 6. September 2007 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> Zitieren
Azubine27 Geschrieben 6. September 2007 Autor Geschrieben 6. September 2007 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. Zitieren
Guybrush Threepwood Geschrieben 6. September 2007 Geschrieben 6. September 2007 Danke für deinen Tipp. Leider hat mir das überhaupt nicht weiter geholfen als Anfänger. :-( Wieso nicht? Wenn du die in der MSDN nachschlägst bekommst du sogar ein Beispiel zu der Erklärung dabei Zitieren
grueni Geschrieben 6. September 2007 Geschrieben 6. September 2007 Das hier ist zwar auf Englisch, aber sieht ganz vernünftig aus: C# Station: ADO.NET Tutorial Lesson 01 - Introduction to ADO.NET In Kapitel 2 wird die Connection-Klasse beschrieben, das dürfte für dich im Moment am interessantesten sein. Zitieren
Azubine27 Geschrieben 6. September 2007 Autor Geschrieben 6. September 2007 @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. Zitieren
grueni Geschrieben 6. September 2007 Geschrieben 6. September 2007 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. Zitieren
Guybrush Threepwood Geschrieben 6. September 2007 Geschrieben 6. September 2007 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. Zitieren
Azubine27 Geschrieben 6. September 2007 Autor Geschrieben 6. September 2007 @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. Zitieren
Guybrush Threepwood Geschrieben 6. September 2007 Geschrieben 6. September 2007 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... Zitieren
Gast alexC++ Geschrieben 7. September 2007 Geschrieben 7. September 2007 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 Zitieren
Gast alexC++ Geschrieben 7. September 2007 Geschrieben 7. September 2007 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 Zitieren
Azubine27 Geschrieben 7. September 2007 Autor Geschrieben 7. September 2007 Oh danke, an deinen Dokumenten bin ich auf jeden Fall interessiert :-) Zitieren
Hipputalamus Geschrieben 5. Februar 2009 Geschrieben 5. Februar 2009 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: Zitieren
Amstelchen Geschrieben 5. Februar 2009 Geschrieben 5. Februar 2009 ok, und was genau ist dein problem? datenquelle anlegen? tabellen einbinden? daten darstellen? daten bearbeiten? bitte mal ein bissl ausführlicher werden. s'Amstel Zitieren
Hipputalamus Geschrieben 16. Februar 2009 Geschrieben 16. Februar 2009 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 Zitieren
Hipputalamus Geschrieben 16. Februar 2009 Geschrieben 16. Februar 2009 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 Zitieren
LordHexa Geschrieben 17. Februar 2009 Geschrieben 17. Februar 2009 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 Zitieren
Hipputalamus Geschrieben 19. Februar 2009 Geschrieben 19. Februar 2009 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 Zitieren
LordHexa Geschrieben 19. Februar 2009 Geschrieben 19. Februar 2009 Ein Blick auf diese Seite verrät mir, das du einen Tippfehler im Connectionstring hast. Access 2007 Connection String Samples - ConnectionStrings.com Zitieren
Hipputalamus Geschrieben 25. Februar 2009 Geschrieben 25. Februar 2009 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: Zitieren
Hipputalamus Geschrieben 17. März 2009 Geschrieben 17. März 2009 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: Zitieren
Empfohlene Beiträge
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.