0

こんにちは、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 に更新したいのですが、どうすればよいですか?

4

2 に答える 2

1

構文が間違っています。「値」を使用する必要がある場所で「値」を使用しています。SSMS を使用している場合は、この種のエラーを簡単に把握できます。

通常、SQL Server Management Studio クエリ エディターでクエリを作成し、C# で使用します。ほとんどの場合、可能であれば SQL Server ストアド プロシージャを使用します。プロシージャを実行するよりも、テキスト クエリを実行する方がリソースが余分にかかると思うからです。

于 2013-10-31T10:40:48.867 に答える