データベーステーブルに次の詳細を追加しようとしています。質問。その答えとTOPICID [INT]入力文字列がC#[OffTopic]の正しい書式エラーではありません
C#コード:型 'にSystem.FormatException' が
private void AddingQuestions()
{
using (MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;database=project;username=root;password=***;"))
{
MySqlCommand cmd = new MySqlCommand("INSERT INTO questions (question, answer, topicID) VALUES (@Questions, @Answers, @TopicID);");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@Questions", TxtBoxQuestion.Text);
cmd.Parameters.AddWithValue("@Answers", TxtboxAnswer.Text);
cmd.Parameters.AddWithValue("@TopicID", Convert.ToInt32(TxtBoxTopicID.Text));
connection.Open();
cmd.Connection = connection;
cmd.ExecuteNonQuery();
MessageBox.Show("Saved");
connection.Close();
}
}
未処理の例外がmscorlib.dllで発生した中で
追加情報:入力文字列はありませんでした正しい形式で
さらにcmd.Parameters.AddWithValue("@TopicID", Convert.ToInt32(TxtBoxTopicID.Text));
::私はSQLインジェクションを防ぐためにparametrised SQLを使用するために、その良い習慣を知っているラインで
。 parametrised sqlを使用していますか?
'TxtBoxTopicID'のテキストが有効な整数であることを確認してください –
フォームが表示される前にこの例外が発生します。ボタンをクリックすると、このページに移動します。テキストボックスに整数値を加えても例外がスローされます。 – SnapShot
まだ何も入力していない場合、TextBoxの値はnullまたは空の文字列で、intに変換することはできません。フォームを開くときにメソッドを呼び出すか、テキストボックスに有効なデフォルト値の –