51 messaggi dal 08 febbraio 2002
Ciao a tutti,
sto cercando di fare un update degli indici dei nodi di un TreeView tramite il DataAdapter, usando questa funzione :

protected void radDocuTree_NodeDrop(object sender, RadTreeNodeEventArgs e)
{
RadTreeNode sourceNode = e.SourceDragNode;
RadTreeNode destNode = e.DestDragNode;

DataSet src = new DataSet();
SqlConnection con = new SqlConnection(ISSCommon.CNN_CONNECTIONSTRING);
SqlCommand selectCommand = new SqlCommand("SELECT * FROM EFSDocFolder", con);
SqlDataAdapter _da = new SqlDataAdapter();
_da.SelectCommand = selectCommand;

SqlCommandBuilder build = new SqlCommandBuilder(_da);
_da.Fill(src, "DocumentTree");
build.GetUpdateCommand();

if(sourceNode.Level == destNode.Level)
{
try
{
if(sourceNode.Parent != null)
{
sourceNode.Parent.Nodes.Remove(sourceNode);
sourceNode.Parent.Nodes.Insert(destNode.Index, sourceNode);
}
else
{
radDocuTree.Nodes.Remove(sourceNode);
radDocuTree.Nodes.Insert(destNode.Index, sourceNode);
}

src.Tables["DocumentTree"].PrimaryKey = new DataColumn[]{src.Tables["DocumentTree"].Columns["FolderID"]};

if(sourceNode.Parent != null)
foreach(RadTreeNode n in sourceNode.Parent.Nodes)
src.Tables["DocumentTree"].Rows.Find(n.ID)["NodeIndex"] = n.Index;
else
foreach(RadTreeNode n in radDocuTree.Nodes)
src.Tables["DocumentTree"].Rows.Find(n.ID)["NodeIndex"] = n.Index;

_da.TableMappings.Add("EFSDocFolder", "DocumentTree");
_da.Update(src);
}
catch(Exception ex)
{
string error = ex.Message;
return;
}
finally
{
con.Close();
}
}
}



nella parte centrale modifico le righe del mio DataTable ( src.Tables["DocumentTree"].Rows.Find(n.ID)["NodeIndex"] = n.Index ), ma quando fa l'update vero e proprio (_da.Update(src)) mi restuituisce questo errore :

Update unable to find TableMapping['Table'] or DataTable 'Table'.


In debug ho controllato il dataset src e contiene la tabella "DocumentTree" inizializzata e valorizzata e "EFSDocFolder" è il nome della mia tabella su Database SQLServer (le maiuscole/minuscole sono esatte).

Forse mi sta sfuggendo qualcosa, potete aiutarmi?
51 messaggi dal 08 febbraio 2002
Credo di aver risolto ....

L' Update doveva essere fatto passandogli la tabella, invece dell'intero Dataset

_da.Update(src.Tables["DocumentTree"]);

anche se il dataset conteneva un'unica tabella.
Si è corretto come dici nel tuo caso devi passare l'argomento del nome della tabella:

xxx.Update(src.Tables["Nome della tabella"]);


Corso SEO 17 maggio 2014 a Parma
Libro SEO, SEM e Web Marketing
Siti Web Parma

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.