我正在建立一个程序,如果投票人提前投票,将在我的数据库中更新早期投票的列。我需要一种方法,用户可以上传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();
}
提前致谢
答案 0 :(得分:0)
UPDATE (SELECT personal.earlyvoted
FROM personal
, datatable
WHERE personal.id = datatable.id)
SET earlyvoted = 1;
每个表中都需要id的主键。