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)
{
}
}
提前感谢
您已经发布了所有这些代码,但您到底做不到什么?人们不得不想,如果你写了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
事件后面。