2009-11-19 4 views
1

J'ai cherché sur Internet un moyen d'afficher un contenu spécifique à partir d'une table de données SQL. J'espérais pouvoir afficher la colonne Content en fonction de la valeur de la colonne Id. alt text http://photos-h.ak.fbcdn.net/hphotos-ak-snc3/hs031.snc3/11852_1241994617732_1465331687_655971_2468696_n.jpgAfficher des données spécifiques sur la page Web asp.net à partir d'un tableau de données microsoft sql express

+0

est renvoyer une erreur 404 –

+0

Quelle est la quête? ion? Où est l'image? –

+0

le lien fonctionne pour moi. –

Répondre

0

Si vous voulez avoir exactement une valeur d'un enregistrement unique, vous pouvez utiliser la méthode ExecuteScalar de la SqlCommand classe:

string title = null; 
using (SqlConnection conn = new SqlConnection("your-connection-string")) 
using (SqlCommand cmd = new SqlCommand(
    "select ContentTitle from {put table name here} where id = 4", conn)) 
{ 
    conn.Open(); 
    title = (string)conn.ExecuteScalar(); 
} 

if (!string.IsNullOrEmpty(title)) 
{ 
    // assign title to suitable asp.net control property 
} 

Si vous voulez être en mesure de le faire pour diverses ids, ne pas simplement concaténer une nouvelle chaîne SQL. Je le répète: ne concatène pas seulement une nouvelle chaîne sql. Utilisez plutôt des paramètres:

string title = null; 
using (SqlConnection conn = new SqlConnection("your-connection-string")) 
using (SqlCommand cmd = new SqlCommand(
    "select ContentTitle from {put table name here} where id = @id", conn)) 
{ 
    SqlParameter param = new SqlParameter(); 
    param.ParameterName = "@id"; 
    param.Value = yourIdGoesHere; 
    cmd.Parameters.Add(param); 

    conn.Open(); 
    title = (string)conn.ExecuteScalar(); 
} 

if (!string.IsNullOrEmpty(title)) 
{ 
    // assign title to suitable asp.net control property 
} 

Mise à jour
page Sample ASPX. Tout d'abord quelques balises (disons que le fichier est appelé example.aspx):

<body> 
    <form id="Form1" runat="server"> 
     Title: <asp:Label id="_titleLabel" 
       Text="{no title assigned yet}" 
       runat="server"/> 
    </form> 
</body> 

... et dans le code-behind (qui serait appelé example.aspx.cs, j'ai inclus seulement l'événement Page_Load simplicité):

protected void Page_Load(object sender, EventArgs e) 
{ 
    int id; 
    try 
    { 
     if (int.TryParse(Request.QueryString["id"], out id)) 
     { 
      _titleLabel.Text = GetContentTitle(id); 
     } 
     else 
     { 
      _titleLabel.Text = "no id given; cannot look up title"; 
     } 
    } 
    catch (Exception ex) 
    { 
     // do something with the exception info 
    } 
} 

private static string GetContentTitle(int id) 
{ 
    using (SqlConnection conn = new SqlConnection("your-connection-string")) 
    using (SqlCommand cmd = new SqlCommand(
     "select ContentTitle from {put table name here} where id = @id", conn)) 
    { 
     SqlParameter param = new SqlParameter(); 
     param.ParameterName = "@id"; 
     param.Value = yourIdGoesHere; 
     cmd.Parameters.Add(param); 

     conn.Open(); 
     return (string)conn.ExecuteScalar(); 
    } 
} 

Disclaimer: le code est écrit directement dans la fenêtre de réponse et non testé (je n'ai pas accès à un environnement de développement en ce moment) donc il peut y avoir des erreurs

lien
+0

Je suis sûr que cela fonctionne. Je ne sais pas comment l'implémenter dans une page web example.aspx. S'il vous plaît poster un exemple du code asp.net. –

+0

Oh et quel fichier dois-je mettre le premier paragraphe de code CS que vous avez montré dans. Je n'ai que 15 ans et j'essaie d'apprendre asp.net. –

+0

Merci. Je vais essayer quand j'ai une chance. –

Questions connexes