SqlDatasource avec paramètre C#
Bonjour,
J'aimerai pouvoir passer en paramètre une valeur à mon SqlDataSource venant de mon code C#. J'utilise un SqlDataSource pour une ddlb avec le Select suivant :
Code:
1 2
|
SELECT CodeEntreprise, NomEntreprise, CodeOperateurRR FROM dbo.Entreprise WHERE (CodeOperateurRR = ?) OR (999999 = ?) ORDER BY NomEntreprise |
Il y a 1 seul paramètre (utilsé 2 fois) de manière à me ramener un filtre sur le CodeOperateurRR (pour FMBr)ou tous les enregistrements sans filtre (en lui passant la valeur 999999). Je souhaite passer ce paramètre à partir de mon code C# au chargement de la page, voici mon code qui ne marche pas :
Code:
1 2 3 4 5 6 7 8
|
string param = "999999";
if (currentUser.CodeRole == "FMBr")
{
param = currentUser.CodeRef.ToString();
}
SqlDataSourceEnt.Parameters["?"].DefaultValue = param;
ddlEntreprise.DataBind(); |
en source j'ai aussi le bloc suivant :
Code:
1 2 3 4
| <SelectParameters>
<asparameter Name="?" Type="Int32" />
<asparameter Name="?" Type="Int32" />
</SelectParameters> |
J'ai aussi testé en C# l'utilisation de SelectParameters sans succès. Pouvez-vous m'aider SVP ? J'ai cherché dans l'aide MSN et le forum en vain...Ma solution ultime serait de passer par un control (label) que je renseignerai dans mon code avec mon "param" et qui est reconnu comme contrôle dans le sqldatasource (ça marche mais c'est pas terrible !).
Avez-vous une solution ?
Merci d'avance pour votre aide.
Solution C# de ddl avec DataSource !
Merci pour la réponse, mais j'ai trouvé une solution à mon problème !
Il s'agissait de faire apparaitre dans une ddl une liste filtrée en fonction d'un paramètre (param) renseigné dans le code.
En fait, je fais tout le SQL dans le code en C# avec un Datasource, voilà ce que cela donne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
using (OdbcConnection cnx = new OdbcConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SybaseConnectionString"].ToString()))
{
String sql = "SELECT CodeEntreprise, NomEntreprise, CodeOperateurRR ";
String from = "FROM Entreprise ";
String where = "WHERE (CodeOperateurRR = " + param + ") ";
where += "OR (999999 = " + param + ") ";
String ordre = "ORDER BY NomEntreprise";
sql += from + where + ordre;
OdbcDataAdapter apt = new OdbcDataAdapter(sql, cnx);
DataSet ds = new DataSet();
apt.Fill(ds);
ddlEntreprise.DataSource = ds;
ddlEntreprise.DataTextField = "NomEntreprise";
ddlEntreprise.DataValueField = "CodeEntreprise";
ddlEntreprise.DataBind();
if (currentUser.CodeRole == "ADMIN")
{
ddlEntreprise.Items.Insert(0, new ListItem("Toutes", "0"));
}
} |
Avis à ceux que cela intéresse...
NB : Dans le Design, je n'ai plus qu'un ddl sans aucune source de données.