ASP.net использует форму для вставки данных в таблицу сервера SQL - PullRequest
16 голосов
/ 21 января 2011

Привет в php я бы сделал форму с действием, позволяющим сказать странице process.php, а на этой странице я бы взял значения post, а с помощью mysql_query вставил бы. Теперь я потерян, я пытаюсь создать и сделать вставку в ASP.net с SQL Server 2008, используя Visual Studio 2010.

Я определил базу данных sql в папке App_Data. В основном, что мне нужно (если нет лучшего способа):

  1. как мне получить значения сообщений.
  2. как мне вставить их в БД.

спасибо.

Ответы [ 2 ]

16 голосов
/ 21 января 2011

В сети есть тонны примера кода, как это сделать.

Вот только один пример того, как это сделать: http://geekswithblogs.net/dotNETvinz/archive/2009/04/30/creating-a-simple-registration-form-in-asp.net.aspx

вы определяете текстовые поля между следующим тегом:

<form id="form1" runat="server"> 

вы создаете свои текстовые поля иопределите их для runat = "server" следующим образом:

<asp:TextBox ID="TxtName" runat="server"></asp:TextBox>

определите кнопку для обработки вашей логики следующим образом (обратите внимание на onclick ):

<asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />

в приведенном ниже коде вы определяете, что вы хотите, чтобы сервер делал, если пользователь нажимает кнопку, определяя метод с именем

protected void Button1_Click(object sender, EventArgs e)

или вы можете просто дважды щелкнуть кнопку в представлении конструктора.

Вот очень быстрый пример кода для вставки в таблицу в событии нажатия кнопки (codebehind)

protected void Button1_Click(object sender, EventArgs e)
{
   string name = TxtName.Text; // Scrub user data

   string connString = ConfigurationManager.ConnectionStrings["yourconnstringInWebConfig"].ConnectionString;
   SqlConnection conn = null;
   try
   {
          conn = new SqlConnection(connString);
          conn.Open();

          using(SqlCommand cmd = new SqlCommand())
          {
                 cmd.Conn = conn;
                 cmd.CommandType = CommandType.Text;
                 cmd.CommandText = "INSERT INTO dummyTable(name) Values (@var)";
                 cmd.Parameters.AddWithValue("@var", name);
                 int rowsAffected = cmd.ExecuteNonQuery();
                 if(rowsAffected ==1)
                 {
                        //Success notification
                 }
                 else
                 {
                        //Error notification
                 }
          }
   }
   catch(Exception ex)
   {
          //log error 
          //display friendly error to user
   }
   finally
   {
          if(conn!=null)
          {
                 //cleanup connection i.e close 
          }
   }
}
2 голосов
/ 21 января 2011

Простой, создайте простую страницу asp с дизайнером (только для начала). Допустим, тело выглядит примерно так:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    <p>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </p>
    </form>
</body>

Отлично, теперь каждый объект asp является объектом.Таким образом, вы можете получить к нему доступ в CS-коде asp.CS-код asp запускается событиями (в основном).Класс, вероятно, будет наследоваться от System.Web.UI.Page

Если вы перейдете к файлу cs страницы asp, вы увидите защищенную пустую Page_Load (отправитель объекта, EventArgse) ... Это событие загрузки, вы можете использовать его для заполнения данными ваших объектов при загрузке страницы.

Теперь перейдите к кнопке в конструкторе (Button1) и посмотрите на ее свойства, выможете создать его или добавить события оттуда.Просто перейдите в представление событий и создайте метод для этого события.

Кнопка представляет собой веб-элемент управления Button Добавьте событие Click к кнопке, назовите ее Button1Click:

void Button1Click(Object sender,EventArgs e) { }

Теперь, когда вы нажмете кнопку, этот метод будет вызван.Поскольку ASP является объектно-ориентированным, вы можете думать о странице как о фактическом классе, а объекты будут содержать актуальные текущие данные.

Так что, если, например, вы хотите получить доступ к тексту в TextBox1, вам просто нужночтобы вызвать этот объект в коде C #:

String firstBox = TextBox1.Text;

Таким же образом вы можете заполнять объекты при возникновении события.

Теперь, когда у вас есть данные, которые пользователь разместил в текстовых полях,вы можете использовать обычные соединения C # SQL для добавления данных в вашу базу данных.

...