Кнопка ASP onClick для отправки данных из текстового поля в базу данных - PullRequest
0 голосов
/ 19 октября 2011

Я новичок в ASP.

Я пытаюсь вставить данные из текстового поля asp: в базу данных SQL Server. Я создал класс в папке APP_CODE, который обрабатывает подключение к базе данных и вставляет методы.

Когда нажимается кнопка 1, я хочу, чтобы она взяла данные из текстового поля asp: и использовала файл questionnaireSQL.cs в APP_CODE для обновления базы данных.

Как я могу это сделать?

questionnaireSQL.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Devworks
{

    public class OscarSQL
    {
        private string _productConnectionString;
        private SqlConnection _productConn;

        public OscarSQL()
        {
            _productConn = new SqlConnection();
            _productConnectionString += "data source=mssql.dev-works.co.uk; Initial Catalog=devworks_oscar;User ID=myusername;Password=mypassword";
            _productConn.ConnectionString = _productConnectionString;
        }

    // Insert New Questionnaire:

        public int InsertQuestionnaire(string QuestName, int CustomerID, int NumberOfQuest)
        {
            int retVal = 0;
            SqlCommand myCommand = new SqlCommand("NewQuestionnaire", _productConn);
            myCommand.CommandType = CommandType.StoredProcedure;
            myCommand.Parameters.Add(new SqlParameter("@QUESTNAME", SqlDbType.NVarChar));
            myCommand.Parameters.Add(new SqlParameter("@CUSTID", SqlDbType.Int));
            myCommand.Parameters.Add(new SqlParameter("@NUMQUEST", SqlDbType.Int));
            myCommand.Parameters.Add("@QUEST_ID", SqlDbType.Int, 0, "QUEST_ID");
            myCommand.Parameters["@QUEST_ID"].Direction = ParameterDirection.Output;
            myCommand.Parameters[0].Value = QuestName;
            myCommand.Parameters[1].Value = CustomerID;
            myCommand.Parameters[2].Value = NumberOfQuest;
            _productConn.Open();
            myCommand.ExecuteNonQuery();
            retVal = (int)myCommand.Parameters["@QUEST_ID"].Value;
            _productConn.Close();
            return retVal;
        }


        // SQL DATAREADER, DATATABLE & NON QUERY UPDATE:

        private void insert(SqlCommand myCommand)
        {
            _productConn.Open();
            myCommand.ExecuteNonQuery();
            _productConn.Close();
        }

        private SqlDataReader getData(SqlCommand myCommand)
        {
            _productConn.Open();
            SqlDataReader myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            return myDataReader;
        }

        private DataTable createDataTable(SqlDataReader data)
        {
            DataTable retVal = new DataTable();
            retVal.Load(data);
            return retVal;
        }
    }
}

newquestionnaire.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true" CodeBehind="new_questionnaire.aspx.cs" Inherits="new_questionnaire" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="container">
        <div class="main">
            <h2 class="new">Add Your Questionnaire</h2>
            <h3>Give your questionnaire a name.</h3>
            <asp:TextBox ID="QuestName" runat="server"></asp:TextBox>
            <h3>CustomerID</h3>
            <asp:TextBox ID="CustomerID" runat="server"></asp:TextBox>
            <h3>Number Of Questions</h3>
            <asp:TextBox ID="NumberOfQuest" runat="server"></asp:TextBox>
            <br />
            <asp:Button  ID="Button1" runat="server" OnClick="Button1_Click" Text="Create" />
        </div> <!-- end main -->
    </div> <!-- end container -->
</asp:Content>

newquestionnaire.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Devworks;

    public partial class new_questionnaire : System.Web.UI.Page
    {


            protected void Page_Load(object sender, EventArgs e)
            {

            }

            protected void Button1_Click(object sender, EventArgs e)
            {

            }
        }

Заранее спасибо

1 Ответ

2 голосов
/ 19 октября 2011

Вы отправили весь этот код, но что именно вы не можете сделать?Следует задаться вопросом, написали ли вы DAL (уровень доступа к данным - ваш код БД) и веб-интерфейс, как получается, что вы не можете написать событие нажатия кнопки, иронически называемой Button1 ??

Youвозьмите значение вашего текстового поля и одним нажатием кнопки вставьте его в базу данных.Когда у вас есть большая задача, разделите ее на более мелкие и делайте каждую часть, пока не закончите головоломку.

В соответствии с вашим кодом

OscarSQL c = new OscarSQL(); //btw: not sure why you are not using a static class for this
int result = c.InsertQuestionnaire(textBox.Text ...);  //add all parameters here

If (result > 0) 
  //good id
else
  //display error message

Поместите весь этот код за button1_click событие вашего кода.

...