private void btnLogin_Click(object sender, EventArgs e) { userName = txtUserName.Text; userPwd = txtUserPwd.Text; MySqlConnection conn = new MySqlConnection("server=localhost;database=person;uid=root;pwd=gjy3523347mysql"); conn.Open(); string sql2 = "select count(*) from per where name='" + userName + "' and pwd='" + userPwd + "'"; if ((int)(new MySqlCommand(sql2,conn).ExecuteScalar()) > 0) { MessageBox.Show("登录成功!"); } else { MessageBox.Show("登录失败!"); } }
为什么报错:System.InvalidCastException: 指定的转换无效。
你可以自己调试一下new<spanstyle="font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.666666030883789px;background-color:#F8F8F8;"> MySqlCommand(sql2,conn).ExecuteScalar()返回出来的是什么类型返回的是object类型没有遇到过这个问题,不过我觉得你可以catch一下异常,找到问题所在久好解决了if((int)(newMySqlCommand(sql2,conn).ExecuteScalar())>0)这个有问题吧,你可以用convert.toint32()试试
回复<aclass='referer'target='_blank'>@酒意:不知道是不是因为那个返回的对象是object的类型而int是针对float以及long这样的转换,toint32重载多次所以支持转换convert.toint32()可以,但是我就是想看看为什么int强转不可以int.Parse()行不行?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。