我正在使用C#在Visual Studio 2012上开发一个软件。我使用MySQL Connector 6.9.1进行MySQL连接。我的软件在我的操作系统(Win8 x64)上运行顺畅,但它不适用于Win7(在VMWare上,我必须在Win7上试用)
throw是抛出这个例外:
MySql.Data.MySqlClient.MySqlException(0x80004005):如果没有GROUP BY子句,混合GROUP列(MIN(),MAX(),COUNT(),...)没有GROUP列是非法的
这是我的代码:
MySqlCommand komut = new MySqlCommand();
komut.Connection = baglan;
komut.CommandType = CommandType.Text;
komut.CommandText = "SELECT count(*),yetki FROM kullanicilar WHERE kadi=@kadi AND sifre=@sifre";
komut.Parameters.AddWithValue("@kadi", txtKadi.Text);
komut.Parameters.AddWithValue("@sifre", txtSifre.Text);
MySqlDataReader oku = komut.ExecuteReader();
oku.Read();
if (oku.GetInt32(0) > 0)
{
if (oku.GetString("yetki") == "0")
{
MessageBox.Show("Hesabınız aktif değil.","Hesap Deaktif",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
baglan.Close();
return;
}
RandevulariYonet randPenc = new RandevulariYonet(txtKadi.Text, this);
this.Hide();
randPenc.ShowDialog();
}
else
{
MessageBox.Show("Giriş Başarsız", "Giriş Başarısız", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
答案 0 :(得分:1)
问题出在SQL语句中:
SELECT count(*),yetki
FROM kullanicilar
WHERE kadi=@kadi AND sifre=@sifre
您使用count(*)
和另一列,而不对其进行分组。它应该是这样的:
SELECT count(*),yetki
FROM kullanicilar
WHERE kadi=@kadi AND sifre=@sifre
GROUP BY yetki