【发布时间】:2017-03-13 14:20:28
【问题描述】:
当我将我的 asp.net Web 表单应用程序连接到本地主机上的 mysql 数据库时,我是 C# 中的新程序员
我收到此错误:
MySql.Data.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
为什么我需要帮助
我在堆栈上找到了一些关于它的东西,但我不知道如何使用他们的具体解决方案。
关于我的代码
在我的代码中,我试图连接到 mysql 并调用简单的 sql 命令 有我的代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft;
using Newtonsoft.Json;
using System.Diagnostics;
using MySql.Data;
using MySql;
using MySql.Data.MySqlClient;
namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
MySqlConnection connection;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CheckMysqlConnection();
}
UploadToMysqlDatabase();
}
private void CheckMysqlConnection() {
//connection string
string connectionString = @"Server=localhost;Database=ev3;Uid=root;Pwd=;";
using (connection = new MySqlConnection(connectionString))
{
if(connection.State != System.Data.ConnectionState.Open)
{
connection.Open();
Response.Write("Mysql Connection Succesful");
}
}
}
private void UploadToMysqlDatabase() {
//Debug.WriteLine(objekt.portId);
MySqlCommand cmd = new MySqlCommand("SELECT * FROM robot",connection);
cmd.ExecuteNonQuery(); ***// there is error***
//connection.Close();
}
}
错误详情
System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=Connection must be valid and open.
Source=MySql.Data
StackTrace:
v MySql.Data.MySqlClient.ExceptionInterceptor.Throw(Exception exception)
v MySql.Data.MySqlClient.MySqlConnection.Throw(Exception ex)
v MySql.Data.MySqlClient.MySqlCommand.CheckState()
v MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
v MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
v WebApplication2.WebForm1.UploadToMysqlDatabase() v C:\Users\Jan\Dropbox\infs1\insys2\WebApplication2\WebApplication2\WebForm1.aspx.cs:řádek 78
v WebApplication2.WebForm1.Page_Load(Object sender, EventArgs e) v C:\Users\Jan\Dropbox\infs1\insys2\WebApplication2\WebApplication2\WebForm1.aspx.cs:řádek 45
v System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
v System.Web.UI.Control.OnLoad(EventArgs e)
v System.Web.UI.Control.LoadRecursive()
v System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
【问题讨论】:
-
你的连接被释放了!
-
这来自糟糕的连接处理。但无论如何,请在您的问题中添加实际的错误消息,包括所有相关消息和内部异常。
-
我应该如何处理已处置的连接?
-
@Johny.M 什么都没有。发出命令时应该使用有效的连接。
-
MySql.Data.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理其他信息:连接必须有效且打开。