无法转换'System.Data.DataSet类型的对象

时间:2013-03-02 15:13:57

标签: c# sql

运行debbugger后我收到此错误以查看错误:

  

“无法将类型为'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;
            }

        }

1 个答案:

答案 0 :(得分:2)

看起来你已在DataSet命名空间中声明了自己的名为NLHosp的类型,而这正是你想要投射到的 - 但FindData只是返回一个System.Data.DataSet对象。

首先,我强烈鼓励您重命名NLHosp.DataSet,以便它不会与现有系统类型名称冲突。然后你应该考虑你实际想要把它投射到什么。如果你真的想把它投射到自定义类型(和工作),那么你需要查看FindData并找出它为什么只返回System.Data.DataSet看起来就像你只需要来自System.Data.DataSet的东西但是......