簡體   English   中英

無法通過ASP.NET Web應用程序將數據插入MySQL表

[英]Unable to insert data into MySQL table via ASP.NET Web Application

我已在本地計算機上安裝MySQL,並嘗試允許將數據從Visual Studio 2017上的ASP.NET Web應用程序插入到已創建的MySQL表中。我已成功建立了MySQL連接並創建了名為``事件''的表”。

最初,使用下面的代碼,我沒有任何語法或系統錯誤,但是每當我單擊並嘗試從Web表單插入數據時,就不會將任何數據插入MySQL表中。 如果我的代碼或任何其他文件配置有任何錯誤的任何建議?

稍后,在嘗試安裝.NET連接器后,我仍然無法將數據插入MySql,並且在命名空間MySqlConnection中收到以下錯誤,如下所示,顯示“ the-type-mysqlconnection-exists-in-both-mysql-data-issue”下面

有什么建議可以糾正,以便能夠將數據插入表中? 是在我的插入代碼中還是問題出在其他地方? 下面是我的代碼:

AddEvent.aspx.cs:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;

namespace Prototype3
{
   public partial class AddEvent : System.Web.UI.Page
   {
     //convert event date input into DateTime format on back-end of page 
     string dateStr = dateinput1.Value;
     DateTime date;

     //Saving data on added event into MySQL database
     string constring = "server=localhost;user id=***********; 
     password=***********!; 
     persistsecurityinfo=True;database=homesecretary";

      //Connection to database below-check!!
      string Query = "INSERT into events (eventTitle) VALUES 
      ('"+tb_eventTitle.Text+"')"; //Parse date input from jQuery 
      datepicker 
      MySqlConnection connDataBase = new MySqlConnection(constring); 

      MySqlCommand cmdDataBase = new MySqlCommand(Query, connDataBase);
      MySqlDataReader myReader;

      try
         {
             connDataBase.Open();
             myReader = cmdDataBase.ExecuteReader();
             connDataBase.Close();
         }

Web.config文件:

  <configuration>
   <connectionStrings>
   <add name="homesecretaryConnectionString" 
   connectionString="server=localhost;user 
   id=********; password=********; persistsecurityinfo=True; 
   database=homesecretary" providerName="MySql.Data.MySqlClient" />
   </connectionStrings>
   .....
  </configuration>

您在這里犯了一個非常基本/根本的錯誤。

MySqlDataReader的目的是在我們選擇數據時使用。 您需要插入非查詢數據,因此應調用ExecuteNonQuery()方法:

// for inserts/updates queries
cmdDataBase.ExecuteNonQuery()

請參閱以下文檔以查看有關如何在ADO.NET中插入數據的示例:

MSDN-將新記錄插入數據庫

注意:請不要對創建查詢進行字符串連接,因為這不是一個好習慣,而是應該使用參數化查詢。 在這里查看示例

update/insert數據時,你可能需要使用ExecuteNonQuery和填滿DataSet你可以用MySqlDataAdapter如下:

private static string _DBConnectionString = string.Empty;    
public static int SetData(string sqlQuery)
{
    int iReturn = -1;
    try
    {
        MySqlCommand cmd = new MySqlCommand(sqlQuery);
        using (MySqlConnection conn = new MySqlConnection(DBConnectionString))
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();

            cmd.Connection = conn;
            iReturn = cmd.ExecuteNonQuery();

            if (conn.State == ConnectionState.Open)
                conn.Close();
        }
    }
    catch (Exception E)
    {
        iReturn = -1;

    }
    return iReturn;
}

public static object GetData(string sqlQuery)
{
    DataSet dtSet = new DataSet();
    try
    {
        MySqlCommand cmd = new MySqlCommand(sqlQuery);
        MySqlDataAdapter adpt = new MySqlDataAdapter();

        using (MySqlConnection conn = new MySqlConnection(DBConnectionString))
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();

            cmd.CommandTimeout = 0;
            adpt.SelectCommand = cmd;

            cmd.Connection = conn;
            adpt.Fill(dtSet);


            if (conn.State == ConnectionState.Open)
                conn.Close();
        }
    }
    catch (Exception E)
    {   

    }
    return dtSet;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM