ASP.NET正在将表单数据插入数据库

本文关键字:数据 插入 数据库 表单 NET ASP | 更新日期: 2023-09-27 18:29:04

我对ASP.NET很陌生,但我有一个带有文本框的表单,其中一些是使用RequiredFieldValidator所必需的。一旦所有内容都填好了,我想插入我的数据库。我读到了各种不同的方法来描述,但不确定插入的最佳、最新的方法。以下是我所拥有的,但不断出现错误:

对象引用未设置为对象的实例。描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误以及错误在代码中的来源的更多信息。

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

来源错误:

第50行:最后第51行:{第52行:conn.Close();第53行:}第54行:}

C#代码——我唯一想插入的是ID=BookingName 的文本框

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using System.IO;
using System.Net.Mail;
using System.Data.SqlClient;
public partial class _Default : BasePage
{

     protected void Page_Load(object sender, EventArgs e)
        {
           // BookingName.Text = "test";
        }
private void ExecuteInsert(string name)
{
    string connString = System.Configuration.ConfigurationManager.ConnectionStrings["CateringAuthorizationEntities"].ConnectionString;
    SqlConnection conn = null;
    string sql = "INSERT INTO tbBooking (BookingName) VALUES "
                + " (@BookingName)";
    try
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlParameter[] param = new SqlParameter[1];
        //param[0] = new SqlParameter("@id", SqlDbType.Int, 20);
        param[0] = new SqlParameter("@BookingName", System.Data.SqlDbType.VarChar, 50);
        param[0].Value = name;
        for (int i = 0; i < param.Length; i++)
        {
            cmd.Parameters.Add(param[i]);
        }
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.ExecuteNonQuery();
    }
    catch (System.Data.SqlClient.SqlException ex)
    {
        string msg = "Insert Error:";
        msg += ex.Message;
        throw new Exception(msg);
    }
    finally
    {
        conn.Close();
    }
}
protected void BtnCatering_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        //call the method to execute insert to the database
        ExecuteInsert(BookingName.Text);
        Response.Write("Record was successfully added!");
    }
}
}

ASP.NET正在将表单数据插入数据库

您实际上并没有分配conn,所以它从来没有值。

conn = new SqlConnection(connString);

为了获得更好的解决方案,请将赋值封装在using语句中。请参阅此处http://www.dotnetperls.com/sqlconnection

从您的代码中,您还没有创建SqlConnection 的新实例

SqlConnection conn = null;

将此更改为;

SqlConnection conn = new SqlConnection(connString);

或者,为了确保在创建新的SqlConnection时发现任何错误,请添加

conn = new SqlConnection(connString)

在打开连接之前,请将其插入try-catch语句。