こんにちは私は実行に1つの問題があります。c#mysql connection
私が欲しいstring MyConString = "SERVER=<snip>;" + "DATABASE=<snip>;" + "UID=<snip>;" + "PASSWORD=<snip>;";
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name=";
connection.Open();
try
{
command.BeginExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show("Done");
connection.Close();
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name=";
:
WHERE char_name = textbox1.text
例えば、私はそれを行うことができますか?例えば
は、私はそれを作る場合:
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name='hello'";
それが動作します。
が、私はそれを持っている場合:それは動作しません
command.CommandText = "UPDATE characters SET nobless=1 WHERE char_name="+listbox1.selecteditem.toString();
、実際に私がWHERE =
として設定したいもののリストボックスの選択した名前!
あなたがここに意味「動かない」かについて、より明確にする必要があります。エラーはありますか?また、そのコードにはSQLインジェクションの脆弱性があります。 – JohnFx
また、連結文字列の値を引用符で囲まず、Odedのようにパラメータ化されたクエリを使用すると、サイトが非常にハッカー可能であるという問題があります。 – JohnFx
listbox1.SelectedVALUEまたはlistbox1.selectedItem.TEXTを使用する必要があります。あなたがそれらの文字列でない場合、それらのToString()をキャストすることができます。 – DOK