Provider or not provider

Signaler
Messages postés
260
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
3 novembre 2007
-
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010
-
Voilà quelques jours que je n'arrive pas à trouver de réponse clair concernant les providers

En effet, selon les colonnes de mon gridView, le compilateur m'avertit comme suit :

An OLE DB Provider was not specified in the ConnectionString.  An example would be, 'Provider=SQLOLEDB;'

Or, précédement, j'avais spécifé un provider, sauf qu'il me mettait une erreur lors de l'update :

Must declare the variable [mailto:'@xyz' '@xyz']   

Je ne sais vraiment plus comment continuer.
Y a-t-il quelqu'un ayant une grande connaissance sur les provider--grid--etc. afin d'éclairer un minimum ma lanterne?

Merci d'avance et je vous souhaite une excellente journée

 ElpenS

5 réponses

Messages postés
260
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
3 novembre 2007

Mon soucis vient également du fait que je ne sais pas très bien comment réagissent les colonnes. En effet, faut-il traiter différement les boundfield des templates,... et ainsi de suite

Merci

 ElpenS
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010

Bonjour,


Quel ConnectionString as-tu dans ton web config ?


Pour ce qui est de @xyz, ta requête sql demande certainement xyz en paramètre afin de faire l'update de ce champ. Si tu ne le fournis pas tu obtiens donc ce type de message.


 
Messages postés
260
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
3 novembre 2007

Bonjour,

Merci déjà pour ton soutient. Voilà ce que je fait:

Ici, mon gridView contenant un dropDownList ayant une datasource en mode edition.

<

asp:GridView
ID="procGrid"
runat="server"DataSourceID="SqlDataSourceGrid">
<Columns>
   <asp:TemplateField
HeaderText="Command Name"
SortExpression="CommandName">
   <EditItemTemplate>
         <asp:DropDownList
ID="dropDownCommand"
runat="server"
DataSourceID="SqlDataGetCommand"
DataValueField="idCommand"
            DataTextField="CommandName"
AutoPostBack="True"
AppendDataBoundItems="True"
OnSelectedIndexChanged="dropDownCommand_SelectedIndexChanged"
SelectedValue='<%# Bind("idCommand") %>
'></asp:DropDownList>
   </EditItemTemplate>
<ItemTemplate>
   <asp:Label
ID="commandLbl"
runat="server"
Text='<%# Bind("CommandName") %>
'></asp:Label>
</ItemTemplate>
</asp:TemplateField>Ensuite, voilà ma dataSource (SqlDataSourceGrid), qui selectionne avec une procedure stockée avec comme agrument une dropDownList(DropDownProcNum), et qui devrait updater mon champs Command avec comme parametre l'id de la dropDownList dropDownCommand.

<

asp:SqlDataSource
ID="SqlDataSourceGrid"
runat="server"
ConnectionString="<%$ ConnectionStrings:AAAConnectionStr %>
" SelectCommand="AAA_getProcByNumber;1"
OldValuesParameterFormatString="original_{0}"
UpdateCommand="UPDATE [Sequence] SET [Command] = @idCommand WHERE [Order]= @original_Order AND [ProcNumber] = @original_ProcNumber"
ProviderName="<%$ ConnectionStrings:AAAConnectionStr.ProviderName %>
"
SelectCommandType="StoredProcedure">
<SelectParameters>
   <asp:ControlParameter
ControlID="DropDownProcNum"
Name="ProcNum"
Type="String"
PropertyName="SelectedValue"
/>
</SelectParameters>
<UpdateParameters>
   <asp:ControlParameter
ControlID="dropDownCommand"
Name="idCommand"
Type="int64"
/>
</UpdateParameters>
</asp:SqlDataSource>
Et voilà l'erreur obtenue quand je clique sur update :

Could not find control 'dropDownCommand' in ControlParameter 'idCommand

J'ai testé beaucoup de manière de procéder mais je pense que celle-là doit être la plus proche du correct. Mais je vous garantis que j'ai eu énormément de message d'erreur différents.

Merci pour votre aide, j'en ai grandement besoin.
Bonne journée a tous

 ElpenS
Messages postés
260
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
3 novembre 2007

Apres quelques heures de recherches supplémentaire, je suis arrivé un peu plus loin, mais j'ai toujours un ennuis

Voilà comment j'ai procedé :

J'ai creer une sub RowUpdating(sender, e) Handles myGrid.RowUpdating qui creer une variable de Session

Ensuite, dans ma dataSource, j'ai changé le paramètre control en :

<asp:SessionParameter
Name="idCommand"
SessionField="idCommand"
Type="Int64"
/>
...

Lorsque je débug mon programme, je vois que la variable de session idCommand prend la bonne valeur.

Je vois que dans ma dataSource, la valeur du parametre est correcte :
  sqlDataSourceGrid.UpdateParameters.Item(0).Type.Int64  --> idCommand

Mais ensuite, l'erreur  Must declare the variable [mailto:'@idCommand' '@idCommand'].

Alors, je ne comprend pas pourquoi il ne la résoud pas

Merci

 ElpenS
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010

Bonjour,


Je suis un peu trop jeune en programmation et je ne veux pas te faire perdre de temps. Donc fais attention à mes commentaires!


Je n'ai jamais utilisé de sqldatasource, ce qui n'arrange rien. Par contre j'ai mis en place pas mal d'objectdatasources avec des stores procedures, et ça marche sans problème quand je mets un dropdownlist en édition (certes mes ddl ne sont pas liés à des bases, mais je ne suis pas sûr que ton pb soit là).


Bref, pas facile de t'aider, mais je viens de remarquer un truc qui me surprend : ton SET [Command].


Ton champ ne serait pas plutôt [idCommand] d'après ce que je vois ? De plus Command serait bien un mot réservé source de pb...

Let me know!