ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataCommonDbDataAdapterClassUpdateTopic5.htm

解决方案 »

  1.   

    ADO.NET: Update a Database from a DataSet
    http://samples.gotdotnet.com/quickstart/howto/doc/adoplus/updatedatafromdb.aspx
      

  2.   

    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %>
    <script Language="c#" runat="server">
      void Page_Load(object sender, EventArgs e)
      {
        string strConnection,strSQL;
    DataSet objDataSet = new DataSet();
        OleDbConnection objConnection = null;
    OleDbDataAdapter objAdapter = null; strConnection = "Provider = Microsoft.Jet.OleDb.4.0;";
    strConnection += @"Data Source=E:\aspcode\Northwind.mdb";
    strSQL = "SELECT EmployeeID,FirstName,LastName FROM Employees;"; objConnection = new OleDbConnection(strConnection);
    objAdapter = new OleDbDataAdapter(strSQL,objConnection); objAdapter.Fill(objDataSet,"Employees"); dgNameList1.DataSource = objDataSet.Tables["Employees"].DefaultView;
    dgNameList1.DataBind();
    DataTable objTable = null;
    DataRow objnewRow = null;
    objTable = objDataSet.Tables["Employees"];
    objnewRow = objTable.NewRow();
    objnewRow["FirstName"] = "Norman";
        objnewRow["LastName"] = "Blake";
    objTable.Rows.Add(objnewRow); objnewRow = objTable.NewRow();
    objnewRow["FirstName"] = "Kasey";
        objnewRow["LastName"] = "Chambers";
    objTable.Rows.Add(objnewRow);
        
    dgNameList2.DataSource = objTable.DefaultView;
    dgNameList2.DataBind(); DataRow objRow = null;
        objRow = objTable.Rows[3];
    objRow["FirstName"] = "John";
    objRow["LastName"] = "Hartford"; dgNameList3.DataSource = objTable.DefaultView;
    dgNameList3.DataBind();    
    objTable.Rows[objTable.Rows.Count-2].Delete(); dgNameList4.DataSource = objTable.DefaultView;
    dgNameList4.DataBind(); OleDbCommandBuilder objBuilder = null;
    objBuilder = new OleDbCommandBuilder(objAdapter);
    objAdapter.UpdateCommand = objBuilder.GetUpdateCommand();
    objAdapter.InsertCommand = objBuilder.GetInsertCommand();
    objAdapter.DeleteCommand = objBuilder.GetDeleteCommand(); objAdapter.Update(objDataSet,"Employees");
        strSQL = "SELECT EmployeeID,FirstName,LastName FROM Employees";
        objConnection.Open();
        OleDbCommand objCmd = new OleDbCommand(strSQL,objConnection);
    dgUpd.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection);
    dgUpd.DataBind();
    }
    </script> <html>
    <body>
    <TABLE width="100%">
    <TR>
    <TD>Original Data</TD>
    <TD>Data with new Row</TD>
    <TD>Data with edited Row</TD>
    <TD>Data with Deleted Row</TD>

    </TR>
    <TR>
    <TD><asp:DataGrid id="dgNameList1" runat="server"/></TD>
    <TD><asp:DataGrid id="dgNameList2" runat="server"/></TD>
    <TD><asp:DataGrid id="dgNameList3" runat="server"/></TD>
    <TD><asp:DataGrid id="dgNameList4" runat="server"/></TD>

    </TR>
    </TABLE>
    <hr/>Data feched from database after the update<br>
    <asp:DataGrid id ="dgUpd" runat="server"/>
    </body>
    </html>
      

  3.   

    ADO.NET:从数据集更新数据库
    http://chs.gotdotnet.com/quickstart/howto/doc/adoplus/updatedatafromdb.aspx这个是中文的(asp.net快速入门)中的例子。
      

  4.   

    它报“并发冲突”出错,这是怎么回事,我的dataset是自己建造的,不是从数据库中得到的。
      

  5.   

    System.Data.DBConcurrencyException: 并发冲突: UpdateCommand 影响 0 个记录出现这个错误
      

  6.   

    我的代码:string strConn,strCmd;
    strConn = ConfigurationSettings.AppSettings["DBConnectString"];
    SqlConnection sqlConn = new SqlConnection(strConn);
    SqlCommand sqlCmd = new SqlCommand();
    sqlCmd.Connection = sqlConn;
    sqlConn.Open();
    strCmd="select * from EquipMove";
    sqlCmd.CommandText=strCmd;
    SqlDataAdapter sqlAdapter = new SqlDataAdapter(sqlCmd);  
    SqlCommandBuilder sqlCmdBuilder=new SqlCommandBuilder(sqlAdapter);
    sqlAdapter.DeleteCommand=sqlCmdBuilder.GetDeleteCommand();
    sqlAdapter.InsertCommand=sqlCmdBuilder.GetInsertCommand();
    sqlAdapter.UpdateCommand=sqlCmdBuilder.GetUpdateCommand();
    SqlTransaction tra=sqlConn.BeginTransaction();
    sqlAdapter.DeleteCommand.Transaction=tra;
    sqlAdapter.InsertCommand.Transaction=tra;
    sqlAdapter.UpdateCommand.Transaction=tra;
    sqlAdapter.Update(dataset,"TableMove");
      

  7.   

    Public Sub Insert()
            Dim dt As DataTable = New DataTable()
            Dim dr As DataRow
            dt.Columns.Add(New DataColumn("name"))
            Dim j As Integer
            For j = 1 To 10
                dr = dt.NewRow()
                dr(0) = "name" + j.ToString()
                dt.Rows.Add(dr)
            Next
            DataGrid2.DataSource = dt
            DataGrid2.DataBind()
            Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\UserLog.mdb")
            conn.Open()
            Dim myAdapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter()
            Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("Insert into mm (name) values (@name)", conn)
            cmd.Parameters.Add("@name", "name")
            cmd.Parameters.Item("@name").SourceColumn = dt.Columns("name").ColumnName
            myAdapter.InsertCommand = cmd
            myAdapter.Update(dt)
            conn.Close()
        End Sub
      

  8.   

    http://chs.gotdotnet.com/quickstart/howto/doc/adoplus/updatedatafromdb.aspx
      

  9.   

    http://www.microsoft.com/china/msdn/library/dv_vstechart/html/vbdatasetconflicts.asp
      

  10.   

    一直报“并发冲突”这是怎么回事啊,也没有同时操作数据库的情况。
    to guoyan19811021(吉祥) :
    代码好像有问题,cmd.Parameters.Item("@name").SourceColumn
    Parameters没Item这个属性谢谢大家,但还是没解决,郁闷啊,谁帮帮我
      

  11.   

    我解决了,原来是AcceptChanges函数做的怪,谢谢各位