Akashさんデサイ:
私は、ボタンのクリックでmysqlデータベースの単純なデータを挿入しようとしているが、私はそうしようとするたびに、ボタンのクリックが処理されますが、データが挿入取得されていないとも全く例外またはエラーがありません。私は正確に同じテーブル名と列名と私はlocalhostにデータベースを格納している、まだそれが問題を作成しています。問題があると思われるか分からないのです。
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();
}
}
}
イジー:
問題は、このコマンドを実行していないです。あなたはコールする必要があるExecuteNonQuery()
ので、この方法を:
cmd1.ExecuteNonQuery();
さらに、あなたのクエリは、paramertisedクエリを使用しても使用すべきであることを避けるために、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();
}
}