Laden...

Insert Into --> txtbox, string etc.. Inhalt?

Erstellt von linkbart vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.170 Views
L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren
Insert Into --> txtbox, string etc.. Inhalt?

Hallo

Wie gebe ich in "values" des insert into befehles an wenn ich etwas hinzufügen möchte das in einem string oder in einer textbox steht.. -> also keine konstante hinzufügen!

Beispiel:

Das funktioniert ja --> mit Konstante "Christian"

"insert into score(Spielername)values('Christian')"

Aber was ist jetzt wenn ich das habe:

string s ="christian" und wenn ich jetzt "s" ins values schreiben möchte?

Wie geht das??

danke

N
4.644 Beiträge seit 2004
vor 17 Jahren

Schau Dir mal die SqlParameter Klasse an. Das SqlCommand Objekt hat eine Eigenschaft Parameters.

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Hmmm versteh ich nicht was da gemeint ist?

Hab das noch nie gemacht!!!

N
4.644 Beiträge seit 2004
vor 17 Jahren
  1. MSDN Doku
  2. SqlParameter Klasse anschauen ( wenn Du den Sql-Sevrer verwendest ), alternativ OleDbParameter
  3. SqlCommand.Parameters anschauen und das Beispiel für Dich anpassen
L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Ja danke aber ich kenn mich trotzdem nicht aus...

Ich weiss nicht mal annähernd was ich da brauche ...

Bis jetzt hab ich das da:

System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand ("insert into score(Spielername)values('hallo')", conn); 

Was soll ich da bitte noch ändern ich will ja nur was anderes bei values hinschreiben das andere passt ja (mit oledbcommand ...)

danke christian aus wien

S
8.746 Beiträge seit 2005
vor 17 Jahren

Original von linkbart
Hab das noch nie gemacht!!!

Angesicht der tausenden Framework-Klassen sagt sich das selbst der erfahrenste Programmierer fast jeden Tag.... Jammern gilt also nicht.

N
4.644 Beiträge seit 2004
vor 17 Jahren

Nocheinmal, in der Doku unter OleDbCommand.Parameters ist ein Beispiel! Da sieht man wie es gemacht wird.

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Meinst du dieses Beispiel? Wenn ja ich weiss nicht was ich damit anfangen soll???
Soll ich zb die textbox in "myCommand.Parameters.Add(...);" reinschreiben???
Oder wie bind ich das dan in die values ein?

string mySelectQuery, OleDbParameter[] myParamArray) {
   OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
   myCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
   myCommand.Parameters.Add(myParamArray);
   for (int j=0; j<myParamArray.Length; j++)
   {
      myCommand.Parameters.Add(myParamArray[j]) ;
   }
   string myMessage = "";
   for (int i = 0; i < myCommand.Parameters.Count; i++) 
   {
      myMessage += myCommand.Parameters[i].ToString() + "\n";
   }
   MessageBox.Show(myMessage);
}
2.082 Beiträge seit 2005
vor 17 Jahren

Ist doch selbsterklärend.

Hm, also das hast du wohl abgeändert, denn manches darin ergibt keinen sinn.

Es wird grundsätzlich so gemacht:

  1. Du legst eine Connection an.
  2. Du legst ein Command an mit einem SelectCommand und verwendest die eben erstellte Connection.
  3. Über das SelectCommand kannst du dir dann die Insert, Update und Delete commands zurückgeben lassen.
  4. Du gibts deinem Command verschiedene Parameter mit jeweils Datentyp und Wert.
  5. Du führst dein command aus.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Hallo...

Ich habe jetzt alle eure hinweise bearbeitet aber ich komm einfach nicht drauf!

Hier was ich bis jetzt eingeben habe -- also ich möchte in diesem fall string f hinzufügen! Bitte um konkrete Hilfe! danke

protected void but_ein_Click(object sender, EventArgs e)
    {
        string f = "petra";
        string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Dokumente und Einstellungen/Christian/Eigene Dateien/Schule HAK/4 AD 2006-07/POSE/Schulübungen/ASP/2006-10-15(Quiz-Projekt)/Highscore.mdb";
        System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString);
        
       System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(conn.ToString());
       conn.Open();
       cmd.CommandText = "INSERT INTO score (Spielernamen) VALUES (?)";
       System.Data.OleDb.OleDbParameter test = new System.Data.OleDb.OleDbParameter("Spielernamen", f);
       cmd.Parameters.Add(test);
      //cmd.ExecuteNonQuery();

       
    }
121 Beiträge seit 2006
vor 17 Jahren

Hi,

aus
INSERT INTO score (Spielernamen) VALUES (?)
mach
INSERT INTO score (Spielernamen) VALUES (@Spielernamen)

aus
new System.Data.OleDb.OleDbParameter("Spielernamen", f);
mach
new System.Data.OleDb.OleDbParameter("@Spielernamen", f);

So könnte es besser gehen
Gruß Hape

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Hmm geht leider noch immer nicht!

Es kommt zwar keine Fehlermeldung (ausser ich mach das "cmd.ExecuteNonQuery();" auch noch dazu dann kommt eine fehlermeldung auch noch!)

Ich weiss wirklich nicht mehr weiter...

121 Beiträge seit 2006
vor 17 Jahren

Also das

ExecuteNonQuery

brauchst Du, sonst passiert ja gar nichts.
Und die Fehlermeldung brauchen wir 🙂
Gruß Hape

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Serverfehler in der Anwendung /2006-10-15(Quiz-Projekt).

ExecuteNonQuery: Connection-Eigenschaft wurde nicht initialisiert.

121 Beiträge seit 2006
vor 17 Jahren

siehst Du, dann fehlts bereits an der Connection, bzw. klappt der connection.open() nicht. Das hat mit dem Insert ja gar noch nichts zu tun.
Gruß Hape

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Meine güte da hab ich mir was angetan? Wo ist der fehler?

121 Beiträge seit 2006
vor 17 Jahren

Deine Connection ist noch defekt.
Gruß Hape

L
linkbart Themenstarter:in
45 Beiträge seit 2006
vor 17 Jahren

Es geht Es geht Es geht!!!!!!!!!!!!

Danke Hape --> schönen Abend noch!

121 Beiträge seit 2006
vor 17 Jahren

🙂 Dir auch bis bald mal wieder...
Gruß Hape