根据下拉列表中的选定值加载文本框 [英] load textboxes according selected value from dropdownlist
本文介绍了根据下拉列表中的选定值加载文本框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试根据选定的值加载文本框,这给了我这个错误:在没有数据的情况下,无效的读取尝试."请帮忙
我的businessLayer中的代码
Am trying to load textboxes according selected value and its giving me this error: "Invalid attempt to read when no data is present.". Please help
Code from my businessLayer
public ClsPatient getSpecificPatient(string patientIdNumber)
{
using (SqlConnection conn = new SqlConnection(ConnString))
{
SqlCommand cmd = new SqlCommand("procGetPatientByPatientID", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@patientIDNumber", SqlDbType.NVarChar));
cmd.Parameters["@patientIDNumber"].Value = patientIdNumber;
ClsPatient patient;
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
reader.Read();
patient = new ClsPatient(Convert.ToString(reader["PatName"]),
Convert.ToString(reader["PatSurname"]), Convert.ToString(reader["PatAddress"]),
Convert.ToString(reader["PatTell"]), Convert.ToString(reader["PatCell"]),
Convert.ToString(reader["PatWorkTell"]), Convert.ToString(reader["PatEmail"]),
Convert.ToString(reader["PatGender"]));
reader.Close();
}
catch (SqlException)
{
throw new ApplicationException("Error reading deleted record from system files. Press ok and refresh button.");
}
return patient;
}
}
下拉菜单后的代码
Code behind th dropdown
protected void ddlPatientID_SelectedIndexChanged(object sender, EventArgs e)
{
//systemBusinessLayer=new BusinessLayer();
ClsPatient patient = systemBusinessLayer.getSpecificPatient((string)ddlPatientID.SelectedValue);
txtViewPatientName.Text = patient.PatName;
txtViewPatientSurname.Text = patient.PatSurname;
txtViewPatientPhonenumber.Text = patient.PatTell;
txtViewPatientCellphone.Text = patient.PatCell;
txtViewPatientWorkPhonenumber.Text = patient.PatWorkTell;
txtViewPatientEmail.Text = patient.PatEmail;
string gender = patient.PatGender;
if (gender == "Female")
{
radFemale.Checked = true;
radMale.Checked=false;
}
else if(gender=="Male")
{
radMale.Checked=true;
radFemale.Checked = false;
}
txtViewPatientAddress.InnerText = patient.PatAddress;
}
代码块-OriginalGriff [/edit]
[edit]Code block - OriginalGriff[/edit]
推荐答案
我怀疑存储过程未返回任何行:请尝试检查您的Read方法的返回值:
I suspect that the stored procedure is not returning any rows: Try checking your Read method return value:
if (reader.Read())
{
patient = new ClsPatient(Convert.ToString(reader["PatName"]),
Convert.ToString(reader["PatSurname"]), Convert.ToString(reader["PatAddress"]),
Convert.ToString(reader["PatTell"]), Convert.ToString(reader["PatCell"]),
Convert.ToString(reader["PatWorkTell"]), Convert.ToString(reader["PatEmail"]),
Convert.ToString(reader["PatGender"]));
}
reader.Close();
SqlDataReader的数据读取问题.
检查以下链接:
< a href ="http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/076fdaa2-6a17-4ce7-87bf-0d9340cfc61e/">链接</a>
Data reading problem with SqlDataReader.
Check this link below:
<a href="http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/076fdaa2-6a17-4ce7-87bf-0d9340cfc61e/">Link</a>
这篇关于根据下拉列表中的选定值加载文本框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文