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
Schau Dir mal die SqlParameter Klasse an. Das SqlCommand Objekt hat eine Eigenschaft Parameters.
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
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.
Nocheinmal, in der Doku unter OleDbCommand.Parameters ist ein Beispiel! Da sieht man wie es gemacht wird.
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);
}
Ist doch selbsterklärend.
Hm, also das hast du wohl abgeändert, denn manches darin ergibt keinen sinn.
Es wird grundsätzlich so gemacht:
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
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();
}
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
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...
Also das
ExecuteNonQuery
brauchst Du, sonst passiert ja gar nichts.
Und die Fehlermeldung brauchen wir 🙂
Gruß Hape
ExecuteNonQuery: Connection-Eigenschaft wurde nicht initialisiert.
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