ASP按钮单击可将数据从文本框发送到数据库

本文关键字:数据库 文本 单击 按钮 数据 ASP | 更新日期: 2023-09-27 18:11:38

我是ASP的新手。

我正试图将asp:textbox中的数据插入SQL Server数据库。我在APP_CODE文件夹中创建了一个类,用于处理数据库连接和插入方法。

单击按钮1时,我希望它从asp:textbox中获取数据,并使用APP_CODE中的questionnaireSQL.cs文件来更新数据库。

我该怎么办?

问卷SQL.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;
        }
    }
}

新调查问卷.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>

新调查问卷.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)
            {
            }
        }

提前感谢

ASP按钮单击可将数据从文本框发送到数据库

您已经发布了所有这些代码,但您到底做不到什么?人们不得不想,如果你写了DAL(数据访问层-你的数据库代码(和Web UI,为什么你不能写一个讽刺地称为Button1的按钮的点击事件??

您获取文本框的值,然后单击按钮将其插入数据库。当你有一个大的任务时,把它分成几个小的,然后做每一块,直到你完成了拼图。

根据您的代码

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事件后面。