0

运行调试器查看错误后出现此错误:

“无法将‘System.Data.DataSet’类型的对象转换为‘NLHosp.DataSet’类型”

“NLHosp”是我的数据库的名称。

这是代码:

  private void btnLogin_Click(object sender, System.EventArgs e)
    {
        string strUser;
        string strPass;
        string sMsg = "";

        strUser = txtUserID.Text ;
        strPass = txtPassword.Text ;

        DataSet o_Find = new DataSet ();
        Users oUsers = new Users();

        try
        {
            o_Find = (DataSet)oUsers.FindData(strUser,strPass);
            sMsg = "Welcome " + o_Find.Tables ["Login"].Rows[0]["UserName"].ToString ();

            switch (strUser)
            {
                case "Admissions":
                    frmAdmissions admitForm = new frmAdmissions ();
                    admitForm.Visible = true;
                    admitForm.Activate();
                    break;
                case "Admin":
                case "Nurse":
                case "Doctor":
                    frmMenu menuForm = new frmMenu ();
                    menuForm.oCurrent.UserName = strUser;
                    menuForm.Visible = true;
                    menuForm.Activate();
                    menuForm.SelectUser();
                    break;
            }

        }
4

1 回答 1

2

看起来您已经DataSetNLHosp命名空间中声明了自己的类型,这就是您要强制转换的类型 - 但FindData它只是返回一个System.Data.DataSet对象。

首先,我强烈建议您重命名NLHosp.DataSet,以免与现有系统类型名称发生冲突。然后你应该考虑你真正想要将它投射到什么。如果您真的打算将其转换为您的自定义类型(并且可以工作),那么您需要查看FindData并弄清楚为什么它只返回一个System.Data.DataSet. 看起来你只需要一些东西System.Data.DataSet......

于 2013-03-02T15:16:32.503 回答