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"); %> />