2010-06-28 4 views
0

Comment faire en sorte que SelectCommand utilise une zone de texte de la page par défaut pour que je puisse l'ajouter à la clause where? S'il vous plaît inclure un exemple, je suis nouveau à la programmation et cela m'aide à mieux comprendre le concept. Merci d'avance.Requête ASP simple Question

Exemple OERE (BADGE = 10000 + xBadgeTextBox.Text)?

string Badge = "100000" + Request.Form["xBadgeTextBox"]; 

<asp:SqlDataSource ID="Time" runat="server" 
     ConnectionString="<%$ ConnectionStrings:Time %>" 
     ProviderName="<%$ ConnectionStrings:Time.ProviderName %>" 
     SelectCommand="SELECT CLOCK_IN_TIME, CLOCK_OUT_TIME, BADGE FROM CLOCK_HISTORY WHERE (BADGE = 100000342)"> // use the badge number instead. 
    </asp:SqlDataSource> 

Répondre

1

Vous voulez ajouter des paramètres à la requête et les spécifier dans l'objet SqlDataSource. Jetez un coup d'oeil ici:

http://msdn.microsoft.com/en-us/library/z72eefad.aspx

Aussi, s'il vous plaît S'IL VOUS PLAÎT être très prudent des attaques par injection SQL ici. À un moment donné, vous pourriez être tenté de concaténer la chaîne de la zone de texte à la commande select. Do not :)

+0

J'ai essayé ceci mais le gridview n'apparaît même pas sur la page aspx, qu'est-ce que je fais mal? ConnectionString = "<% $ ConnectionStrings: Temps%>" ProviderName = "<% $ ConnectionStrings: Time.ProviderName%>" SelectCommand = "SELECT " CLOCK_IN_TIME ", " CLOCK_OUT_TIME " DE " CLOCK_HISTORY " OU (" BADGE " =: BADGE) ">

+0

À moins que ce ne soit juste un problème de copier/coller ici, le Les instances de " dans SelectCommand pourraient être le coupable. Si c'est ce qui est envoyé à la base de données, il y aura probablement une erreur. Êtes-vous attraper une erreur? – David

+0

et si la chaîne est déjà concaténée dans la zone de texte "l'utilisateur entre 343 nombre réel est 10000343", comment puis-je l'obtenir pour lire le nombre réel? –