Ich habe den folgenden Code:System.Data.SQLite Parameter Ausgabe
try
{
//Create connection
SQLiteConnection conn = DBConnection.OpenDB();
//Verify user input, normally you give dbType a size, but Text is an exception
var uNavnParam = new SQLiteParameter("@uNavnParam", SqlDbType.Text) { Value = uNavn };
var bNavnParam = new SQLiteParameter("@bNavnParam", SqlDbType.Text) { Value = bNavn };
var passwdParam = new SQLiteParameter("@passwdParam", SqlDbType.Text) {Value = passwd};
var pc_idParam = new SQLiteParameter("@pc_idParam", SqlDbType.TinyInt) { Value = pc_id };
var noterParam = new SQLiteParameter("@noterParam", SqlDbType.Text) { Value = noter };
var licens_idParam = new SQLiteParameter("@licens_idParam", SqlDbType.TinyInt) { Value = licens_id };
var insertSQL = new SQLiteCommand("INSERT INTO Brugere (navn, brugernavn, password, pc_id, noter, licens_id)" +
"VALUES ('@uNameParam', '@bNavnParam', '@passwdParam', '@pc_idParam', '@noterParam', '@licens_idParam')", conn);
insertSQL.Parameters.Add(uNavnParam); //replace paramenter with verified userinput
insertSQL.Parameters.Add(bNavnParam);
insertSQL.Parameters.Add(passwdParam);
insertSQL.Parameters.Add(pc_idParam);
insertSQL.Parameters.Add(noterParam);
insertSQL.Parameters.Add(licens_idParam);
insertSQL.ExecuteNonQuery(); //Execute query
//Close connection
DBConnection.CloseDB(conn);
//Let the user know that it was changed succesfully
this.Text = "Succes! Changed!";
}
catch(SQLiteException e)
{
//Catch error
MessageBox.Show(e.ToString(), "ALARM");
}
Sie führt perfekt, aber wenn ich meine "Brugere" Tabelle zu sehen, hat es die Werte eingefügt: '@uNameParam', ‚@ bNavnParam ',' @passwdParam ',' @pc_idParam ',' @noterParam ',' @licens_idParam 'wörtlich. Anstatt sie zu ersetzen.
Ich habe versucht, einen Haltepunkt zu machen und überprüfte die Parameter, sie haben die korrekten zugewiesenen Werte. Das ist also auch nicht das Problem.
Ich habe jetzt mit viel Glück daran herumgebastelt, kann mir niemand helfen?
Oh und als Referenz, hier ist die OpenDB Methode aus der DBConnection Klasse:
public static SQLiteConnection OpenDB()
{
try
{
//Gets connectionstring from app.config
const string myConnectString = "data source=data;";
var conn = new SQLiteConnection(myConnectString);
conn.Open();
return conn;
}
catch (SQLiteException e)
{
MessageBox.Show(e.ToString(), "ALARM");
return null;
}
}
Sorry, nein, das habe ich auch versucht. Es würde den folgenden Fehler geben: "Unzureichende Parameter, die an den Befehl geliefert wurden" – CasperT
Ah, ich sehe Ihr Problem. Nicht alle Parameternamen sind gleich: @uNavnParam gegen @uNameParam. Es ist ein einfacher Tippfehler :) –
Und Sie sollten immer noch die einfachen Anführungszeichen um Ihre Parameter entfernen. –