gpt4 book ai didi

c# - 连接必须有效且打开(再次)

转载 作者:行者123 更新时间:2023-11-29 02:36:33 28 4
gpt4 key购买 nike

我遇到错误“连接必须有效并再次打开,当我更改我的 sql 查询代码时。任何人都可以帮忙吗??(编辑)在 form1 中我已经连接到数据库,在 form2 中我试图添加查询。

//IN Class1.cs
public void test(string query, string name)
{
MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(query, connection);
cmd.CommandText = @query;
cmd.Parameters.AddWithValue("Name", name);
MySql.Data.MySqlClient.MySqlDataReader Reader = cmd.ExecuteReader();
while (Reader.Read())
{
Console.WriteLine(Reader[0]);
}
cmd.ExecuteNonQuery();
}
//IN Form2.cs
private void button2_Click(object sender, EventArgs e)
{
name = textBox1.Text;
var obj = new Class1();
obj.test(@"SELECT * FROM players WHERE name = ?Name;", name);
}

最佳答案

看起来连接正在处理(或者可能根本没有打开!)

理想情况下,我会将其更改为使用工作单元方法,并将您的实例包装在 using block 中以确保它们被正确处理:

using (var connection = new MySqlConnection("connection-string"))
{
using (var command = new MySqlCommand(query, connection))
{
connection.Open();

command.Parameters.AddWithValue("?name", name);

using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader[0]);
}
}
}
}

此外,在您已经使用 ExecuteReader() 之后调用 cmd.ExecuteNonQuery(); 的目的是什么?

关于c# - 连接必须有效且打开(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235740/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com