开发者社区> 问答> 正文

C#连接数据库代码问题?报错

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: 指定的转换无效。



展开
收起
爱吃鱼的程序员 2020-06-20 19:09:42 593 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你可以自己调试一下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()行不行?

    2020-06-20 19:09:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载