Código:
  
Bien con esto consigo, sin problemas, instroducir nuevos registros. No obstante, no sé si la consulta resaltada devuelve todos los datos que contiene la tabla, que pueden ser muchísimos y por tanto ralentizar la tarea, o sólo la estructura, que es lo que realmente necesito para insertar nuevos registros.            ...
            cmd.CommandText = "SELECT * FROM descripciones"
            da.Fill(ds, "descripciones")
            For Each rf As String In Request.Form
                If rf.IndexOf("descripcion") <> -1 Then
                    If Request.Form(rf).Trim <> "" Then
                        Dim drD As DataRow = ds.Tables("descripciones").NewRow
                        drD("Categoria") = rf.Replace("descripcion", Nothing)
                        drD("Descripcion") = Request.Form(rf).Trim
                        ds.Tables("descripciones").Rows.Add(drD)
                    End If
                End If
            Next
            da.Update(ds, "descripciones")
            ds.AcceptChanges()
            ...
¿Se puede optimizar de alguna manera?
Gracias y un saludo.
 
