我正在开发一个网上考试系统,当考生的答案做完后,我打算将这些答案一次性提交到数据库,应该如何做?是否可以将这些数据放进某一个DataSet中的DataTable,然后再将之一次性提交到数据库呢?
希望高手能为我详细解答,不胜感激!

解决方案 »

  1.   

    1. use dataadapter + datatable/dataset, although the statement is still run one by one, waiting for better support in .Net 2.0OleDbConnection myConn = new OleDbConnection(myConnection);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
        myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
        OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);    myConn.Open();    DataSet custDS = new DataSet();
        myDataAdapter.Fill(custDS);    //改变数据    myDataAdapter.Update(custDS);    myConn.Close();
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatacommondbdataadapterclassupdatetopic2.asp2. use XMLHOW TO: Perform Bulk Updates and Inserts Using OpenXML with .NET Providers in Visual C# .NET
    http://support.microsoft.com/default.aspx?scid=kb;zh-cn;315968
      

  2.   

    public DataSet CreateCmdsAndUpdate(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName) 
    {
        OleDbConnection myConn = new OleDbConnection(myConnection);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
        myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
        OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);    myConn.Open();    DataSet custDS = new DataSet();
        myDataAdapter.Fill(custDS);    //code to modify data in dataset here    myDataAdapter.Update(custDS, myTableName);    myConn.Close();    return custDS;
     }
      

  3.   

    为 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。
      

  4.   

    呵呵,现在情形下,光在.net中作文章是没可能的。即使看上去是一次提交(DataAdapter.Update),其实处理起来,还是一条条记录处理的。
    在某些特定情况下,可以自己组织数据,当然得有自己的格式,然后在数据库中分解,然后利用存储过程更新。