zzh2000080015 2020-11-05 22:16 采纳率: 0%
浏览 11

C#webform插入数据库错误

插入数据库数据库不显示。

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

namespace WebApplication1
{
    class A
    {
        public static SqlConnection con()
        {
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = @"Data Source=DESKTOP-BLOD1OH;Initial Catalog=text;Integrated Security=SSPI";
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            return conn;
        }
        public static SqlCommand cmd(SqlConnection conn, string sql)
        {
            SqlCommand comd = new SqlCommand();
            comd.Connection = conn;
            comd.CommandText = sql;
            return comd;
        }
        public static void closed(SqlConnection conn)
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
    }
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Label6.Text = TextBox1.Text + " , " + TextBox2.Text + " , " + TextBox3.Text + " , " + TextBox4.Text + " , " + TextBox5.Text;
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            string zh = TextBox1.Text;
            string mm = TextBox2.Text;
            string sf = TextBox3.Text;
            string xm = TextBox4.Text;
            string xb = TextBox5.Text;
            string sql = "insert into dbo.userinfo(账号,密码,身份,姓名,性别) values('" + zh + "','" + mm + "','" + sf + "','" + xm + "','" + xb + "')";
            SqlConnection conn = A.con();
            SqlCommand comd = A.cmd(conn, sql);
            A.closed(conn);
        }
    }
}

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-24 21:41
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 在代码中,通过Button2_Click事件向数据库中插入数据,但是数据库中并没有显示插入成功的数据。可能的原因包括连接数据库失败、SQL语句错误、未执行提交操作等。 解决方案:
    1. 确认数据库连接是否成功: 在A.con()方法中,判断连接状态为关闭时才打开连接并返回,但在调用A.cmd()方法后并未执行任何操作。建议在执行完命令后关闭连接,即将A.closed(conn)方法的调用位置移至插入数据后。
    2. 检查SQL语句: 在拼接SQL语句时,应该注意字符串值需要添加单引号。可以使用参数化查询的方式拼接SQL语句,以防止SQL注入攻击。
    3. 执行提交操作: 在执行命令后,应该调用ExecuteNonQuery()方法来执行SQL语句,将数据插入到数据库中。 案例代码示例:
    protected void Button2_Click(object sender, EventArgs e)
    {
        string zh = TextBox1.Text;
        string mm = TextBox2.Text;
        string sf = TextBox3.Text;
        string xm = TextBox4.Text;
        string xb = TextBox5.Text;
        string sql = "INSERT INTO dbo.userinfo(账号,密码,身份,姓名,性别) VALUES(@zh, @mm, @sf, @xm, @xb)";
        
        using(SqlConnection conn = A.con())
        {
            using(SqlCommand comd = A.cmd(conn, sql))
            {
                comd.Parameters.AddWithValue("@zh", zh);
                comd.Parameters.AddWithValue("@mm", mm);
                comd.Parameters.AddWithValue("@sf", sf);
                comd.Parameters.AddWithValue("@xm", xm);
                comd.Parameters.AddWithValue("@xb", xb);
                
                conn.Open();
                comd.ExecuteNonQuery();
            }
        }
        
        Label6.Text = "数据插入成功!";
    }
    

    通过以上修改,可以保证数据库连接正常、SQL语句正确、提交操作成功,从而确保数据成功插入数据库中。

    评论

报告相同问题?