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 回答