回 帖 发 新 帖 刷新版面

主题:我很苦恼呢 大哥们来帮帮兄弟一把吧~!!!!

N天以来我的研究C#写的windows应用程序用的是MySql数据库

我也在网上找了N多资料

我用的是Microsoft.net 也装了MYSQL ODBC驱动

也能从数据库中读出数据来

可是我做的登陆就是死活登不上去

以下是判断的

 MySqlDBHelper.connection.Open();
                string sql = string.Format("select count(*)from admin where adminName='{0}' and adminPwd='{1}'", userName.Text, userPwd.Text);
                OdbcCommand cmd = new OdbcCommand(sql,MySqlDBHelper.connection);
                //MessageBox.Show(cmd.ToString());
                int n = (int) cmd.ExecuteScalar();
                //MessageBox.Show(n.ToString());
                MySqlDBHelper.connection.Close();
                if (n==1)
                {
                    MaxForm max = new MaxForm();
                    max.Show();
                    this.Hide();
                }
                else
                {
                    Eorr.Text = "错误信息";
                    EorrBody.Text = "输入的用户名不存在!";
                    userName.Text = "";
                    userPwd.Text = "";
                    userName.Focus();
                }

想了很久也在网上找了很久 没有一能解决的答案

看过发贴如有更好的解决方法给小弟我指点一下谢谢了

出错信息是:
System.InvalidCastException: 指定的转换无效。
   在 TangRenWeb.Form1.button1_Click(Object sender, EventArgs e) 位置 E:\C#\TangRenWeb\TangRenWeb\Form1.cs:行号 43
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

调试到   int n = (int) cmd.ExecuteScalar();

就永远的停止了

如果有做过这样的高手能给我指点指点

谢谢大家

回复列表 (共2个回复)

沙发

错误Track显示错误发生在TangRenWeb.Form1.button1_Click方法,并且在43行
如果那一行是int n = (int) cmd.ExecuteScalar();
可以尝试int n = Convert.ToInt32(cmd.ExecuteScalar());或者先检查返回值到底是什么类型
有的版本MySQL会返回long类型

板凳

谢谢板主
我在试一下

我来回复

您尚未登录,请登录后再回复。点此登录或注册