【发布时间】:2018-05-20 10:19:10
【问题描述】:
我正在使用 MySQL 在 C# ASP.NET 中创建一个项目。我正在尝试正确打开 MySql 连接。还要正确关闭/处理此连接。因为它有时会给出那个错误
"mySQL 错误:系统缺少足够的缓冲区空间或因为队列 已满。”
无论如何,所以我决定像这样使用“使用”方法我当前的连接方法;
MySqlConnection baglanti = new MySqlConnection(ConfigurationManager.ConnectionStrings["mysqlbaglanti"].ToString());
void GirisYap()
{
using (var cn = baglanti)
{
cn.Open();
using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM kullanicilar WHERE kullaniciadi='" + txtKullaniciAdi.Text + "' AND sifre='" + txtSifre.Text + "'"))
{
using (MySqlDataReader oku = cmd.ExecuteReader())
{
if (oku.Read())
{
Session.Add("AdSoyad", oku["AdSoyad"]);
Session.Add("sesid", oku["kullaniciid"]);
Response.Redirect("AnaSayfa.aspx");
}
else
{
lblDurum.Text = "Yanlış Kullanıcı Adı/Şifre !";
}
}
}
}
}
但它给出了“连接必须有效且打开”的错误。我做错了什么?
【问题讨论】:
-
您永远不会将连接分配给命令。使用
new MySqlCommand("sql string...", cn);。然后重构使用参数来避免sql注入和语法错误。 -
不确定该表有多少字段,但考虑将
*替换为adsoyad, kullaniciid以减少发送给您的字节数。 -
谢谢@Crowcoder 的回答