无法通过asp.net web应用程序将数据插入mysql表

fjaof16o  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(688)

我已在本地计算机上安装了mysql,并尝试在visual studio 2017上启用从asp.net web应用程序向已创建的mysql表插入数据。我成功地建立了一个mysql连接,并创建了一个名为“events”的表。
最初,我没有任何语法或系统错误,使用下面的代码,但是每当我尝试在单击时从我的web表单插入数据时,没有数据被插入mysql表。如果我的代码或任何其他文件配置中有任何错误,有什么建议吗?
后来,在我尝试安装connector for.net之后,我仍然无法将数据插入mysql,并且在命名空间mysqlconnection中出现以下错误,声明“类型mysqlconnection存在于两个mysql数据问题中”,如下所示
有什么建议可以纠正,以便能够插入数据到我的表?是在我的插入代码中,还是问题出在其他地方?下面是我的代码:
附录.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>
yhqotfr8

yhqotfr81#

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;
}
bwntbbo3

bwntbbo32#

你犯了一个非常基本的错误。
mysqldatareader的目的是在选择数据时使用。您需要插入数据而不是查询,以便它应该调用 ExecuteNonQuery() 方法:

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

有关如何在ado.net中插入数据的示例,请参阅以下文档:
msdn-在数据库中插入新记录
注意:请不要在创建查询时进行字符串连接,因为这不是一个好的实践,而应该使用参数化查询。请看下面的示例

相关问题