2010-04-09 2 views
0

J'ai une question sans aucun doute simple, mais je n'arrive pas à trouver cette réponse nulle part. J'écris une application de formulaire de Windows de C# qui contient un datagridview que j'emploie pour exécuter une instruction de SQL UPDATE dehors à la base de données avec un dataadapter. J'utilise une requête paramétrée et ai besoin de remplir les paramètres avec des colonnes de la vue de données, mais je ne suis pas sûr de la syntaxe à utiliser pour représenter la colonne elle-même. Je pensais que je pouvais utiliser quelque chose comme:Extraire des paramètres d'un datagridview C# .NET

da.UpdateCommand.Parameters.Add("@CustomerID", SqlDbType.VarChar, 4).Value = RuleTable.Columns["CustomerID"].ToString(); 

mais tout cela ne met à jour les enregistrements corrects, il semble avoir peuplé chacun de ces champs avec le mot « données ». C'est à peu près ce que j'ai en pseudocode:

using (SqlDataAdapter ruleTableDA = new SqlDataAdapter("SELECT CustomerID, etc ...", con)) 
{ 
    ruleTableDA.UpdateCommand = new SqlCommand("UPDATE CustomerTable SET " + 
    "CustomerTable.CustomerID = @CustomerID. etc ... WHERE CustomerTable.MachineID = @MachineID", con); 
    if (BobstPresses.SelectedIndex >= 0) 
    { 
     ruleTableDA.UpdateCommand.Parameters.Add("@CustomerID", 
      SqlDbType.VarChar, 4).Value = RuleTable.Columns["CustomerID"]; 
     DataTable dt = new DataTable(); 
     dt = RuleTable.DataSource as DataTable; 
     ruleTableDA.Update(dt); 
    } 
} 

Répondre

1

Je ne suis pas sûr si je comprends bien, une estimation est que vous voulez utiliser quelque chose comme:
RuleTable.Rows[index].Cells["CustomerID"].Value

où l'indice est la index de la ligne dans le DataGridView contenant les données que vous souhaitez utiliser dans la requête.