使用where子句使用数据表数据更新数据库

时间:2012-06-19 14:53:17

标签: c# asp.net sql datatable

我正在建立一个程序,如果投票人提前投票,将在我的数据库中更新早期投票的列。我需要一种方法,用户可以上传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();
    }       

提前致谢

1 个答案:

答案 0 :(得分:0)

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

每个表中都需要id的主键。