运行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;
}
}
答案 0 :(得分:2)
看起来你已在DataSet
命名空间中声明了自己的名为NLHosp
的类型,而这正是你想要投射到的 - 但FindData
只是返回一个System.Data.DataSet
对象。
首先,我强烈鼓励您重命名NLHosp.DataSet
,以便它不会与现有系统类型名称冲突。然后你应该考虑你实际想要把它投射到什么。如果你真的想把它投射到自定义类型(和工作),那么你需要查看FindData
并找出它为什么只返回System.Data.DataSet
。 看起来就像你只需要来自System.Data.DataSet
的东西但是......