C# 在数据库中搜索患者时需要选中所需的复选框

C# 在数据库中搜索患者时需要选中所需的复选框,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我需要两个复选框被选中或取消选中的参考数据库。我是编程新手,需要做的是,当搜索患者时,它会显示患者是否希望收到垃圾邮件,以及他们是否是捐赠者。 我的代码发生的是,当我搜索患者时,我得到一个错误“用户代码未处理无效的强制转换异常”关于将字符串转换为布尔值的内容这是我的代码 < % input type="checkbox" name="spam" value="Y" <%if (String.Compare((String) ViewData["spam"],"Y",false)==0

我需要两个复选框被选中或取消选中的参考数据库。我是编程新手,需要做的是,当搜索患者时,它会显示患者是否希望收到垃圾邮件,以及他们是否是捐赠者。 我的代码发生的是,当我搜索患者时,我得到一个错误“用户代码未处理无效的强制转换异常”关于将字符串转换为布尔值的内容这是我的代码

< % input type="checkbox" name="spam" value="Y" <%if (String.Compare((String) ViewData["spam"],"Y",false)==0) Response.Write("checked"); %>
但是我不确定mystring或myboolean是什么

我的控制器是:

    public void patientInit()
    {

        hospitalSQLEntities db = new hospitalSQLEntities();
        ViewData["bloodtypeList"] = db.bloodtypes.ToList();
        ViewData["patientid"] = "";
        ViewData["patientname"] = "";
        ViewData["bloodtype"] = 0;
        ViewData["gender"] = "";
        ViewData["spam"] = "";
        ViewData["organs"] = "";
        ViewData["address"] = "";
        ViewData["message"] = "";
    }

    public void patientNewButtPressed()
    {
        if (Request.Params["submitter"] == "New Patient")
        {
            ViewData["patientid"] = "(System Specified)";
            ViewData["patientname"] = "";
            ViewData["bloodtype"] = 0;
            ViewData["gender"] = "";
            ViewData["spam"] = "";
            ViewData["organs"] = "";
            ViewData["address"] = "";
            ViewData["message"] = "";
        }

    }

    public void patientSearchByID()
    {
        hospitalSQLEntities db = new hospitalSQLEntities();
        String formpatientid = Request.Params["searchpatientid"];
        patient mypatient = null;
        bool foundship = true;
        try
        {
            mypatient = db.patients.Single(u => u.patientid == formpatientid);
        }
        catch (Exception e)
        {
            foundship = false;
        }
        if (foundship)
        {
        ViewData["patientid"] = "" + mypatient.patientid;
        ViewData["patientname"] = mypatient.patientname;
        ViewData["bloodtype"] = mypatient.bloodtype;
        ViewData["gender"] = mypatient.gender;
        ViewData["spam"] = mypatient.spam;
        ViewData["organs"] = mypatient.organs;
        ViewData["address"] = mypatient.address;
        ViewData["message"] = "patient " + mypatient.patientid +" found";
        }
        else
        {
            ViewData["patientid"] = "(System Specified)";
            ViewData["patientname"] = "";
            ViewData["bloodtype"] = 0;
            ViewData["gender"] = "";
            ViewData["spam"] = "";
            ViewData["organs"] = "";
            ViewData["address"] = "";
            ViewData["message"] = "Cannot find patient with ID " + formpatientid;
        }
    }



    public String patientSearchByName()
    {
        hospitalSQLEntities db = new hospitalSQLEntities();
        patient mypatient = null;
        List<patient> patientlist = null;
        string mypatientname = Request.Params["searchpatientname"];
        patientlist = db.patients.Where(u => u.patientname.Contains(mypatientname)).ToList();
        if (patientlist.Count() == 0)
            ViewData["message"] = "Matching name not found!";
        else if (patientlist.Count() == 1)
        {
            mypatient = db.patients.Single(u => u.patientname.Contains(mypatientname));
            ViewData["patientid"] = "" + mypatient.patientid;
            ViewData["patientname"] = mypatient.patientname;
            ViewData["bloodtype"] = mypatient.bloodtype;
            ViewData["gender"] = mypatient.gender;
            ViewData["spam"] = mypatient.spam;
            ViewData["organs"] = mypatient.organs;
            ViewData["address"] = mypatient.address;
            ViewData["message"] = "patient " + mypatient.patientname +" found";
        }
        else
        {
            return mypatientname ;
        }
        return "";
    }
public void patientInit()
{
hospitalSQLEntities db=新的hospitalSQLEntities();
ViewData[“bloodtypeList”]=db.bloodtypes.ToList();
ViewData[“patientid”]=“”;
ViewData[“patientname”]=“”;
ViewData[“血型”]=0;
ViewData[“性别”]=“”;
ViewData[“垃圾邮件”]=“”;
ViewData[“器官”]=“”;
ViewData[“地址”]=“”;
ViewData[“消息”]=“”;
}
public void patientNewButtonPressed()
{
if(请求参数[“提交者”]=“新患者”)
{
ViewData[“patientid”]=“(指定的系统)”;
ViewData[“patientname”]=“”;
ViewData[“血型”]=0;
ViewData[“性别”]=“”;
ViewData[“垃圾邮件”]=“”;
ViewData[“器官”]=“”;
ViewData[“地址”]=“”;
ViewData[“消息”]=“”;
}
}
public void patientSearchByID()
{
hospitalSQLEntities db=新的hospitalSQLEntities();
字符串formpatientid=Request.Params[“searchpatientid”];
患者mypatient=null;
bool foundship=true;
尝试
{
mypatient=db.patients.Single(u=>u.patientid==formpatientid);
}
捕获(例外e)
{
foundship=假;
}
国际单项体育联合会(基金会)
{
ViewData[“patientid”]=“mypatient.patientid;
ViewData[“patientname”]=mypatient.patientname;
ViewData[“血型”]=mypatient.bloodtype;
ViewData[“性别”]=mypatient.gender;
ViewData[“spam”]=mypatient.spam;
ViewData[“器官”]=mypatient.organs;
ViewData[“address”]=mypatient.address;
ViewData[“message”]=“patient”+mypatient.patientid+“found”;
}
其他的
{
ViewData[“patientid”]=“(指定的系统)”;
ViewData[“patientname”]=“”;
ViewData[“血型”]=0;
ViewData[“性别”]=“”;
ViewData[“垃圾邮件”]=“”;
ViewData[“器官”]=“”;
ViewData[“地址”]=“”;
ViewData[“message”]=“找不到ID为“+formpatientid”的患者;
}
}
公共字符串patientSearchByName()
{
hospitalSQLEntities db=新的hospitalSQLEntities();
患者mypatient=null;
List patientlist=null;
字符串mypatientname=Request.Params[“searchpatientname”];
patientlist=db.patients.Where(u=>u.patientname.Contains(mypatientname)).ToList();
if(patientlist.Count()==0)
ViewData[“message”]=“未找到匹配的名称!”;
else if(patientlist.Count()==1)
{
mypatient=db.patients.Single(u=>u.patientname.Contains(mypatientname));
ViewData[“patientid”]=“mypatient.patientid;
ViewData[“patientname”]=mypatient.patientname;
ViewData[“血型”]=mypatient.bloodtype;
ViewData[“性别”]=mypatient.gender;
ViewData[“spam”]=mypatient.spam;
ViewData[“器官”]=mypatient.organs;
ViewData[“address”]=mypatient.address;
ViewData[“message”]=“patient”+mypatient.patientname+“found”;
}
其他的
{
返回mypatientname;
}
返回“”;
}

idk,如果是打字错误或值得一提的话

< % input type="checkbox" name="spam" value="Y" <%if (String.Compare((String) ViewData["spam"],"Y",false)==0) Response.Write("checked"); %>
<%input type=“checkbox”name=“spam”value=“Y”
应该看起来像

<input type="checkbox" name="spam" value="Y" <%if (String.Compare((String) ViewData["spam"],"Y",false)==0) Response.Write("checked"); %> />


甚至可以将属性放在那里
checked=“
我不需要去掉字符串并替换它吗?@2112我刚刚用这个
测试过,效果很好。也许您的问题在于
ViewData
请不要在标题前加上“C”。这就是标签的用途。
<input type="checkbox" name="spam" value="Y" <%if (String.Compare((String) ViewData["spam"],"Y",false)==0) Response.Write("checked"); %> />