こんにちは、MS MySql Database 2012 テーブルへのデータの挿入に関する簡単な質問があります。私が持っているテーブルは COMPLETED と呼ばれ、3 つのフィールドがあります。
- student_ID (int、null は許可されません)
- 完了 (ブール値、null は許可されません)
- random_code (文字列、null を許可)
C# には、一意のランダム コードで満たされたリストがあります。すべてのコードをデータベースに挿入したいので、20 個のレコードがある場合、20 個の一意のコードを random_code フィールドに挿入します。したがって、最初のレコードは最初のコードを取得し、秒のレコードは 2 番目のコードを取得するというようになります。これを行う最善の方法は foreach を使用し、コードのリスト内のコードごとに、そのコードをデータベースの random_code フィールドに挿入することだと思います。問題は、これを行う方法がわからないことです。VALUE でエラーが発生する次のコードがあります。
「VALUE」付近の構文が正しくありません。
foreach (string unRaCo in codes)
{
//insert database
SqlCommand toDB = new SqlCommand("INSERT INTO COMPLETED (random_code) VALUE ( '"+ unRaCo +"' ) ", conn);
SqlDataReader toDBR;
toDBR = toDB.ExecuteReader();
}
ここで誰か教えてくれませんか?前もって感謝します。
編集:
さて、クエリを完全に変更したのは、クエリがまだやりたいことを実行していないことがわかったからです。レコードを挿入する代わりに、レコードを更新したいと考えています。私は次のコードでそれを行いました:
foreach (string unRaCo in codes)
{
//insert database
SqlCommand naarDB = new SqlCommand("UPDATE VOLTOOID SET random_code = '"+ unRaCo +"' ", connectie);
SqlDataReader naarDBR;
naarDBR = naarDB.ExecuteReader();
naarDBR.Close();
}
今回の問題は、更新クエリがすべてのレコードを最初のコードで更新するため、たとえば最初のレコードにはコード 12345 がありますが、他のすべてのレコードにもそのコードがあることです。12345 をレコード 1 に更新し、54321 をたとえば番号 2 に更新したいのですが、どうすればよいですか?