Zum Inhalt springen

SQL-SERVER und C#


romperstomper

Empfohlene Beiträge

Hi,

um Daten in ein Datenbanktabelle zu schreiben muss eine INSERT-Anweisung abgesetzt werden.

So ähnlich könnte das aussehen:


private void InsertStatement()
{
string Connectionstring = "Server=localhost; DataBase=myDatabase; Integrated Security=SSPI" ;

SqlConnection cnSQL;
SqlCommand cmSQL;
SqlDataReader drSQL;
String strSQL;

try
{
// Build Insert statement
strSQL = "INSERT mytable VALUES (" +
txtField1.Text + "," +
txtField2.Text + "," +
txtField3.Text + ")";

cnSQL = new SqlConnection(Connectionstring);

cnSQL.Open();

cmSQL = new SqlCommand(strSQL, cnSQL);

cmSQL.ExecuteNonQuery();

// Close and Clean up objects
drSQL.Close();
cnSQL.Close();
cmSQL.Dispose();
cnSQL.Dispose();
}
catch(SqlException Exp)
{
MessageBox.Show(Exp.Message, "SQL Error");
}
catch(Exception Exp)
{
MessageBox.Show(Exp.Message, "General Error");
}
}
[/PHP]

myDatabase und myTable sind natürlich nur Beispielwerte!

Ganz ähnlich geht's für die SQL-Anweisungen UPDATE, INSERT, DELETE usw.

Ich denke, da kommst du jetzt selbst dahinter.

PS:

Der Quellcode wurde von mir stark abgeändert. Das Orginal stammt von:

Microsoft 101 Visual Basic and C# Code Samples

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

also erstmal danke,aber kann da nicht wirklich viel mit anfangen, weil bin eben Anfänger :confused:

Also mal meine Ausgangspunkt.

Ich habe einen SQL Adapter "sqlDataZeit"

eine SqlConnection "sqlConnection1"

einen DataSet = "dsZeit1"

Also die Verbindung ist aufgebaut und im DataGrid Fenster sehe ich auch die Tabelle die aus "ID,Name,Firma,Zeitaufwand" besteht!

So jetzt möchte ich einfach in die Spalte "Name" zum beispiel "Testname" reinschreiben,was vorher in einem Textfeld eingegeben wurde(txtTest = Field). Wie sieht da genau der Insert Befehl aus?

Vieleicht ein kleines Beispiel nochmal parat?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo,

Anfänger hin, Anfänger her...

um ein wenig Grundlagen wird mann nicht herumkommen ;)

http://de.gotdotnet.com/quickstart/winforms/doc/DataAccessPlaceHolder.aspx

sollte nach der NET-Installation auch auf deinem Rechner vorhanden sein

zum Problem:

insert into tabelle(spalte1,spalte2) values ('Inhalttxt1','Inhalttxt2')

allerdings sollte man mit Parametern arbeiten.

hier noch ein beispiel mit DataReader

http://support.microsoft.com/kb/306636/DE/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

da du bereits eine gültige SqlConnection hast, brauchst du nur noch die Insert-Anweisung als SqlCommand abzusetzen:


SqlCommand cmSQL;
String strSQL;
String ID="4711";
String Name=txtTest.Text;
String Firma="Firma YX";
String Zeitaufwand="0";

try
{
// Build Insert statement
strSQL = "INSERT INTO [B]ZEIT[/B] (ID,Name,Firma,Zeitaufwand) VALUES (" +
ID + "," +
Name + "," +
Firma + "," +
Zeitaufwand + ")";


cmSQL = new SqlCommand(strSQL, sqlConnection1);

cmSQL.ExecuteNonQuery();

// Close and Clean up objects
cmSQL.Dispose();
}
catch(SqlException Exp)
{
MessageBox.Show(Exp.Message, "SQL Error");
}
catch(Exception Exp)
{
MessageBox.Show(Exp.Message, "General Error");
}
[/PHP]

Achtung bei dem Beispiel gehe ich davon aus, dass deine Tabelle ZEIT heist!

Link zu diesem Kommentar
Auf anderen Seiten teilen


private void button3_Click(object sender, System.EventArgs e)

		{

			string Connectionstring = "workstation id=VECTRA;packet size=4096;DataBase = TABTEST;integrated security=SSPI;data source=VECTR" +

				"A;persist security info=False;initial catalog=KeineAhnung";


			SqlConnection cnSQL; 

			SqlCommand cmSQL; 

			SqlDataReader drSQL; 


			String strSQL; 

			String NAMETXT = txtName.Text; 

			String VORNAMETXT = txtNachname.Text; 


			try 

			{ 


				// Build Insert statement 

				strSQL = "INSERT INTO TABTEST (Name,Nachname) VALUES (" + NAMETXT + "," + VORNAMETXT + ")"; 



				cnSQL = new SqlConnection(Connectionstring);

				cmSQL = new SqlCommand(strSQL, cnSQL); 

				cnSQL.Open();



				sqlCommand1.ExecuteNonQuery(); 


				// Close and Clean up objects 


				cnSQL.Close(); 

				cmSQL.Dispose(); 



			} 

			catch(SqlException Exp) 

			{ 

				MessageBox.Show(Exp.Message, "SQL Error"); 

			} 

			catch(Exception Exp) 

			{ 

				MessageBox.Show(Exp.Message, "General Error"); 

			} 

Bekomme dann den FehlerCode SQL Closed!!!!

Habe die Tabelle jetzt nur mit Name und Nachname! Heißt TABTEST!

Komm nicht weiter.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einen Programmierer (egal ob Anfänger oder Profi) zeichet aus,

wie er mit Fehlermeldungen umzugehen weis.

Bekomme dann den FehlerCode SQL Closed!!!!

Das deutet doch ziemlich genau darauf hin, dass auf eine geschlossene Datenbank zugegriffen wurde, oder nicht?

Wenn du deinen Quelltext genau anschaust wirst du feststellen, dass der Fehler kommen musste, da du versuchst eine SQL-Anweisung abzusetzen bevor die Datenbank geöffnet hast!

cnSQL = new SqlConnection(Connectionstring);

cmSQL = new SqlCommand(strSQL, cnSQL);

cnSQL.Open();

Dreh das ganze mal herum:

cnSQL = new SqlConnection(Connectionstring);

cnSQL.Open();

cmSQL = new SqlCommand(strSQL, cnSQL);

Übrigens hatte ich das bereits im ersten Posting so angegeben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...