public bool DataSetUpdaerToAccess(System.Data.DataSet TempDataSet,string TableName)
{
System.Data.OleDb.OleDbConnection ConnectObject = new OleDbConnection(GetConnectStr());
System.Data.OleDb.OleDbDataAdapter UpdateDataAdapter = new OleDbDataAdapter("Select * From " + TableName,ConnectObject);
System.Data.OleDb.OleDbCommandBuilder CMDBuilder = new OleDbCommandBuilder(UpdateDataAdapter);
UpdateDataAdapter.InsertCommand = CMDBuilder.GetInsertCommand();
UpdateDataAdapter.DeleteCommand = CMDBuilder.GetDeleteCommand();
UpdateDataAdapter.UpdateCommand = CMDBuilder.GetUpdateCommand();
if(TempDataSet.Tables[TableName].Rows.Count < 1)
{
return true;
}
else
{
try
{
TempDataSet.Tables[TableName].Columns.Remove("总页数");
TempDataSet.Tables[TableName].Columns.Remove("总行数");
TempDataSet.Tables[TableName].Columns.Remove("总金额");
}
catch
{
}
System.Data.DataSet NewDataSet = new DataSet();
System.Data.DataTable AddTable = TempDataSet.Tables[TableName].Copy();
AddTable.Clear();
NewDataSet.Tables.Add(AddTable);
for(int i = 0;i < TempDataSet.Tables[TableName].Rows.Count;i++)
{
DataRow AddRow =  NewDataSet.Tables[TableName].NewRow();
for(int j = 0;j < NewDataSet.Tables[TableName].Columns.Count;j++)
{
string ColumnsNameStr = NewDataSet.Tables[TableName].Columns[j].ColumnName;
AddRow[ColumnsNameStr] = TempDataSet.Tables[TableName].Rows[i][ColumnsNameStr];
}
NewDataSet.Tables[TableName].Rows.Add(AddRow);
}
try
{
ConnectObject.Open();
}
catch
{
}
NewDataSet.AcceptChanges();
try
{
UpdateDataAdapter.Update(NewDataSet.Tables[TableName]);
}
catch
{
ConnectObject.Close();
return false;
}
ConnectObject.Close();
return true;
}
}代码运行不报错,但是就是更新不到数据库中;

解决方案 »

  1.   

    catch(Exception exc )
    {
     Response.Write(exc.Message.ToString());
    }
    让它报错看看
      

  2.   

    你的catch要写成这样才报错
    catch(Exception e)
    {
      Response.Write(e.ToString());
    }
    每个catch都要改才能看出是那错了
      

  3.   

    Access?
    是不是权限不够?把数据库改成everyone可写
    还有这种更新方式好像需要表里面有主键
      

  4.   

    catch(Exception e)
    {
      Response.Write(e.ToString());
    }
    看看一切就会明了!
      

  5.   

    如果异常就好了,关键是以上代码执行不报错,把try语句全部去掉也不会报错啊,呵呵这是WinFrom程序;