2013-03-02 107 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

相關問題