>>>>>Exception Details: System.Data.MissingPrimaryKeyException: Table doesn't have a primary key.try Dim drs() As DataRow = ds.Tables("tb").Rows.Select(String.Format("YourID = '{0}'",Datagrid1.DataKeys(di.ItemIndex)))
 if drs.Length > 0 then
  Dim dr As DataRow = drs(0)
'....

解决方案 »

  1.   

    sorry
    Dim drs() As DataRow = ds.Tables("tb").Select(String.Format("YourID = '{0}'",Datagrid1.DataKeys(di.ItemIndex)))
     if drs.Length > 0 then
      Dim dr As DataRow = drs(0)
      

  2.   

    TO:saucer(思归) 
    为什么我把你的那段写入后,数据并没有写到我指定的XML文件呢?
      

  3.   

    TO:saucer(思归) 
    Private Sub lkb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lkb.Click
            Dim di As DataGridItem
            For Each di In Datagrid1.Items
                If di.ItemType = ListItemType.Item OrElse di.ItemType = ListItemType.AlternatingItem Then
    Dim drs() As DataRow = ds.Tables("tb").Select(String.Format("ID = '{0}'", Datagrid1.DataKeys(di.ItemIndex)))
                    If drs.Length > 0 Then
                        Dim dr As DataRow = drs(0)
    dr("FCOMID") = CType(di.FindControl("FCOMID"), TextBox).Text
                        dr("FCODE") = CType(di.FindControl("FCODE"), TextBox).Text
                        dr("FNAME") = CType(di.FindControl("FNAME"), TextBox).Text
                        dr("FKIND") = CType(di.FindControl("FKIND"), TextBox).Text
                    End If
                End If
            Next
            ds.WriteXml(Server.MapPath("~/dept.xml"))
        End Sub
      

  4.   

    do you have a "ID" column which is the key field? what if you just do
      
          For Each di In Datagrid1.Items
                If di.ItemType = ListItemType.Item OrElse di.ItemType = ListItemType.AlternatingItem Then                    Dim dr As DataRow = ds.Tables("tb").Rows(di.ItemIndex)
    dr("FCOMID") = CType(di.FindControl("FCOMID"), TextBox).Text
                        dr("FCODE") = CType(di.FindControl("FCODE"), TextBox).Text
                        dr("FNAME") = CType(di.FindControl("FNAME"), TextBox).Text
                        dr("FKIND") = CType(di.FindControl("FKIND"), TextBox).Text
                   
                End If
            Next?
      

  5.   

    按上面你给我假使那样,也是不能插入到XML中
      

  6.   

    let's tryds.WriteXml(Response.OutputStream)open the html in IE, do you see the changes?