【问题标题】:Data not getting inserted into mysql database in asp.net c# web application在asp.net c# web应用程序中,数据没有被插入到mysql数据库中
【发布时间】:2020-07-10 20:32:36
【问题描述】:

我试图在单击按钮时在 mysql 数据库中插入简单数据,但每当我尝试这样做时,按钮单击都会被处理,但数据没有被插入,也没有异常或错误。我将数据库存储在我的本地主机中,具有完全相同的表名和列名,但它正在产生问题。不知道问题似乎是。

testing.aspx 文件

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testing.aspx.cs" Inherits="CricketAnalysis2.testing" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        </div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <p>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        </p>
    </form>
</body>
</html>

testing.aspx.cs 文件

using System;
using MySql.Data.MySqlClient;
using System.Data;

namespace CricketAnalysis2
{
    public partial class testing : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            MySqlConnection con = new MySqlConnection(@"Data Source=localhost;port=3306;Initial Catalog=cricdb;User Id=root;password=''");
            con.Open();
            MySqlCommand cmd1 = con.CreateCommand();
            cmd1.CommandType = CommandType.Text;
            cmd1.CommandText = "INSERT INTO drug VALUES ('"+TextBox1.Text+"')";
            con.Close();
        }
    }
}

【问题讨论】:

    标签: c# mysql vb.net web-applications insert


    【解决方案1】:

    问题是您没有执行命令。您需要调用ExecuteNonQuery() 方法:

    cmd1.ExecuteNonQuery();
    

    此外,您的查询目前对 sql 注入开放,以避免您应该使用参数化查询并使用using 块来确保正确处理对象。

    var connectionString = "Data Source=localhost;port=3306;Initial Catalog=cricdb;User Id=root;password=''\"";
    var query = "INSERT INTO DRUG VALUES(@ParameterName)";
    using (var con = new MySqlConnection(connectionString))
    {
      using (var cmd = new MySqlCommand(query, con))
      {
         cmd.Parameters.Add("@ParameterName", MySqlDbType.VarChar).Value = TextBox1.Text;
    
         con.Open();
         cmd.ExecuteNonQuery();
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-18
      • 2016-12-30
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      相关资源
      最近更新 更多