私はいくつかのデータをMSSQLデータベーステーブルに書き込むためにINSERTを使用しようとしています。私は私のSQL文字列が正しいと信じていますが、command.ExecuteScaler();を実行するとエラーメッセージが表示されます。エラーメッセージをスクリーンショットに添付しました。それは私が間違った構文を使用していると述べていますが、私はコンパイルエラーを取得していません。 私は何か間違っていると仮定しています。C#を使用してMSSQLテーブルにデータを挿入する方法
CODE:
using (SqlConnection connection = new SqlConnection(SQLHelper.CnnCal("CQDB")))
{
connection.Open();
String insert = @"INSERT INTO Skills(SkillName, SkillNumber, SkillLastUpdated, SkillServer) VALUES(" + skills.SkillName + "," + skills.SkillNumber + "," + skills.LastUpdated + "," + skills.CallServer +")";
SqlCommand command = new SqlCommand(insert, connection);
command.ExecuteScalar();
connection.Close();
}
Error Message from exception pop up
質問: MSSQLデータベースのテーブルにデータを挿入する適切な方法は何ですか?
:
次のコードは、そのの世話をします。それはSQLインジェクションを防ぎ、あなたの値の引用符とフォーマットを扱います。 – GuidoG
あなたの問題に対する最短かつ簡単な解決策は、すべてのパラメータを引用符で囲んでいるのを忘れてしまったことです。現在INSERT INTO People(Name)VALUES(Flater)のようなクエリを作成していますが、INSERT INTO People(Name)VALUES( 'Flater') 'にする必要があります。しかし、このような答えは、SQLインジェクションを防ぐためにパラメータを使用することが期待されている標準であるため、大幅に下落しています(ただし、すべての正直なところ、あなたの質問に特に関係しないものです。 – Flater
このようなクエリを構築する代わりにパラメータを使用すると、引用符の問題も処理されます。だから私はそれがこの質問の有効なコメントだと思う – GuidoG