J'ai un GridView
lié à un SqlDataSource
avec un défaut SelectCommand
défini comme tel:Changement SqlDataSource.SelectCommand lors des pauses d'exécution Pagination
<asp:SqlDataSource ID="SqlDataSource1" runat="server" DataSourceMode="DataSet"
ConnectionString="<%$ ConnectionStrings:MyConn %>"
ProviderName="MySql.Data.MySqlClient"
SelectCommand="select * from blah blah" />
Il y a des cas où je dois changer cette requête dynamiquement lors de l'exécution, je procédez comme suit:
SqlDataSource1.SelectCommand = sql; // 'sql' is the new query
GridView1.PageIndex = 0;
GridView1.EditIndex = -1;
GridView1.SelectedIndex = -1;
GridView1.DataBind();
updatePanel.Update();
Cela fonctionne très bien fait, mais quand je clique sur les contrôles de pagination, le résultat par défaut remis à l'SelectCommand
défini dans le SqlDataSource1
.
Quelque chose autour de ça?
Merci, Mark
-1 Cette approche est sujettes à l'injection SQL et n'est pas recommandé. Vous devez utiliser des paramètres, pas de concaténation de chaîne. –
Mike, vous avez raison à propos de l'injection SQL et j'ai noté cela dans la réponse originale. J'essayais simplement de répondre à la question posée. Je suis également d'accord que l'utilisation d'une procédure stockée avec des paramètres est la meilleure solution. – dscarr