0

投票者が早期に投票した場合、データベースの早期投票列を1に更新するプログラムを構築しています。ユーザーがCSVをアップロードし、そのCSVのid列をデータベース内の投票者のIDと照合して、彼の早期投票ステータスを更新できる方法が必要です。CSVはユーザーからのものであるため、CSVの列数はわかりません。2列の列もあれば、10列の列もありますが、すべての列には、データベースの投票者のIDと一致するid列があります。CSVをアップロードしてデータテーブルに挿入するコードがありますが、データベースに挿入するためのロジックについてサポートが必要です。私はこのようなことを考えていましたが、それを処理する正しい方法がわかりません。

 UPDATE personal SET earlyVoted = 1 where personal.id = datatable.id 

これは私がデータテーブルのために持っているコードです

string target = Server.MapPath("~/Upload");
    if (FileUpload1.HasFile)
    {
        FileUpload1.SaveAs(System.IO.Path.Combine(target, FileUpload1.FileName));
        string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;", System.IO.Path.GetDirectoryName(target + "\\" + FileUpload1.FileName));
        string cmdString = string.Format("SELECT * FROM {0}", System.IO.Path.GetFileName(target + "\\" + FileUpload1.FileName));
        OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmdString, connString);
        DataSet dataSet = new DataSet();
        dataAdapter.Fill(dataSet);
        GridView1.DataSource = dataSet.Tables[0];
        GridView1.DataBind();
    }       

前もって感謝します

4

1 に答える 1

0
UPDATE (SELECT personal.earlyvoted 
          FROM personal
             , datatable 
         WHERE personal.id = datatable.id) 
   SET earlyvoted = 1; 

各テーブルのidに主キーが必要です。

于 2012-06-19T15:14:54.793 に答える