2011-07-15 2 views
0

J'ai une base de données SQL avec 1 table avec 3 colonnes. documentID, documentTitle, documentBody.Placez du texte dans une base de données SQL Server 2005

J'ai une page aspx avec 2 entrées ... 1 pour le titre 1 pour le corps et 1 bouton soumettre.

Comment diable puis-je obtenir le texte dans les champs de saisie pour stocker dans une nouvelle ligne dans la base de données? Je ne peux pas trouver une réponse simple ... concrète et il n'y a aucun moyen que ce soit si compliqué.

<form id="form1" runat="server"> 
<div style="width: 800px; margin-top: 40px;"> 
    <p style="text-align: left"> 
     Title</p> 
    <p> 
     <input id="inputTitle" runat="server" type="text" style="width: 100%; padding: 6px; 
      font-size: large" /></p> 
    <p style="text-align: left"> 
     Body</p> 
    <p> 
     <textarea id="inputBody" runat="server" style="width: 100%; height: 400px" cols="22" 
      rows="66"></textarea></p> 
    <p> 
     <input id="save" type="submit" onclick="submit_onclick" value="Save as the newest version" /><span> or 
     </span><a href>Cancel</a></p> 
</div> 
</form> 
+0

SQL Server Management Studio 2005. Visual Studio 2010. – bluetickk

Répondre

0

Utiliser les contrôles serveur ASP.NET pour vos entrées, au lieu d'un <input>.

<asp:Button runat="server" Text="Submit" id="sub" OnClick="SaveDetails" /> 

<asp:TextBox runat="server" id="txtBody" /> 
<asp:TextBox runat="server" id="txtTitle" /> 

Essayez quelque chose comme ceci dans votre code-behind:

protected void SaveDetails(object sender, EventArgs e) { 

    using (var conn = new SqlConnection("Data Source=YourServerName;Initial Catalog=YourDatabaseName;Integrated Security=True;")) 
    using (var cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = @"INSERT INTO docs (documentTitle, documentBody) 
          VALUES (@title,@body);"; 
     cmd.Parameters.AddWithValue("@title", txtTitle.Text.Trim()); 
     cmd.Parameters.AddWithValue("@body", txtBody.Text.Trim()); 

     cmd.ExecuteNonQuery();   
    } 
} 
1

Le plus simple serait d'utiliser ADO.NET directement dans le gestionnaire OnClick - mais qui conduit à code spaghetti et entremêlement de la manipulation de l'interface utilisateur (réglage et lecture par exemple des zones de texte) et le code d'accès aux données - qui est pas une bonne approche.

Partout - va ici l'approche simple (encore une fois: non recommandé pour une utilisation réelle)

protected void submit_onclick(object sender, EventArgs e) 
{ 
    string sqlStmt = "INSERT INTO dbo.YourTable(documentTitle, documentBody) " + 
         "VALUES(@docTitle, @docBody)"; 

    string connectionString = WebConfigurationManager.ConnectionStrings["YourConnectionString"].ConnectionString; 

    using(SqlConnection conn = new SqlConnection(connectionString)) 
    using(SqlCommand cmd = new SqlCommand(sqlStmt, conn)) 
    { 
     cmd.Parameters.Add("@docTitle", SqlDbType.VarChar, 100).Value = tbxTitle.Text.Trim(); 
     cmd.Parameters.Add("@docBody", SqlDbType.VarChar, 100).Value = tbxBody.Text.Trim(); 

     conn.Open(); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
    } 
} 

Bien sûr - au moyen d'un ORM pourrait faciliter les choses dans une perspective de programmation (juste « nouvelle » un Document, définissez ses propriétés .Title et .Body, et appelez .Save() dessus - ou quelque chose comme ça) - mais ces ORM ont aussi une certaine courbe d'apprentissage.

Aussi: si vous cherchez à faire des choses simples à moyennement complexes ou si vous êtes en train d'entrer dans le développement ASP.NET - pourquoi ne pas vérifier Microsoft WebMatrix? Il contient beaucoup d'aides et de «wrappers» qui facilitent le traitement des tâches typiques - en particulier la base de données, pour un!

Voir part 5 of the intro tutorial on database development.

Questions connexes