连接必须有效,并且visual studio中存在打开错误



我试图在datagridview中显示mariadb数据库中的所有寄存器,但当我启动代码时,会出现错误"连接必须是有效的并且打开错误";,代码在这里:

如果有人能帮我,我会很高兴的:(

您的代码有两个主要问题。首先,不要将连接对象与命令对象相关联,而不是

MySqlCommand cmd = new MySqlCommand("SELECT * FROM encomendas");

应该是

MySqlCommand cmd = new MySqlCommand("SELECT * FROM encomendas", bdcon);

此外,不需要调用cmd.ExecuteNonQuery()。还建议在实现IDisposable的对象上使用using块,以确保它们被正确处理,因此您的完整代码可能是:

var datatable = new DataTable();
using (var connection = new MySqlConnection("connectionstring"))
using (var command = new MySqlCommand("SELECT * FROM encomendas", connection ))
{
connection.Open()'
using (var reader = command.ExecuteReader())
{
datatable.Load(reader);
}
}
// Bind to your grid view

话虽如此,如果你想填写DataTable,那么MySqlDataAdapater()是最简单的方法:

var dt = new DataTable();
using (var adapter = new MySqlDataAdapter("SELECT * FROM encomendas", "ConnectionString"))
{
adapter.Fill(dt);
}
// Bind to your grid view

删除MysqlCommand cmd=新的MysqlCommand("(行和试试

using (var sqlCommand = new MySqlCommand("SELECT * FROM encomendas", bdcon))
{
MySqlDataReader read = sqlCommand.ExecuteReader();
dt.Load(read);
}

试试

MysqlCommand的对象必须与对象MysqlConnection关联。很明显,你的cmd与bdcon没有任何关系,这就是为什么它说"连接必须是有效的并且打开错误";当您调用方法``cmd.ExecuteNonQuery((时。下面是一个类似的片段。

SqlConnection sqlConnection = new SqlConnection();
SqlCommand cmd = sqlConnection.CreateCommand();
//or
SqlCommand cmd = new SqlCommand("sql text", sqlConnection);

最新更新