2013-03-02 102 views
0

我得到这个错误运行debbugger看到错误后:无法投类型的对象System.Data.DataSet中

"Unable to cast object of type 'System.Data.DataSet' to type '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; 
      } 

     } 

回答

2

看起来你已经声明自己的类型称为NLHosp命名空间中DataSet,这就是你要投什么 - 但FindData刚刚回国一个System.Data.DataSet对象。

首先,我会强烈鼓励您重命名NLHosp.DataSet,以便它不会与现有的系统类型名称发生冲突。那么你应该考虑你实际上是想要投它。如果你真的打算把它转换成你的自定义类型(和工作),那么你需要看看FindData并找出它只返回System.Data.DataSet的原因。它看起来像你只需要从System.Data.DataSet的东西,虽然...

+0

那么你有什么建议我做?kmatyaszek – user2121793 2013-03-02 15:43:20

相关问题