मैं एक बटन क्लिक पर MySQL डेटाबेस में सरल डेटा डालने की कोशिश कर रहा हूं, लेकिन जब भी मैं ऐसा करने का प्रयास करता हूं, तो बटन क्लिक संसाधित होता है लेकिन डेटा सम्मिलित नहीं हो रहा है और कोई अपवाद या त्रुटियां भी नहीं हैं। मेरे पास मेरे स्थानीयहोस्ट में ठीक उसी तालिका नाम और कॉलम नाम के साथ डेटाबेस संग्रहीत है, फिर भी यह समस्या पैदा कर रहा है। पता नहीं मामला लग रहा है।

परीक्षण.एएसपीएक्स फ़ाइल

 <%@ 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>

Test.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();
        }
    }
}
0
Akash Desai 30 मार्च 2020, 16:02

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();
   }
}
2
Izzy 30 मार्च 2020, 13:17