ПРЕДПОСЫЛКА: Я работаю над веб-сайтом asp.net (баскетбольная поддельная система управления клиентами) с кодом C# за файлом и создаю базовые формы для вставки новых данных и обновления существующих данных в базе данных SQL.Установите флажки, если элемент находится в DataTable
У меня есть таблица (PatientMedicalHistory), который содержит 30+ флажков (нет в списке), которые используются для определения того, что «недомогание» пациент указал, что они имели, когда мы сначала создать новую запись пациента с помощью хранимой процедуры. Данные сохраняются как первичный ключ комбинации (PatientId int + AilmentId int), чтобы избежать дублирования. Потенциальные Айлментсы хранятся в другой таблице (Айлментса), который содержит множество комбинаций AilmentId INT и AilmentDescription VARCHAR (50)
я, вероятно, следовал бы использовать другую схему (битовые столбцы для каждого недуга в 1 комбинированный стол) для этой таблицы, но при этом это оставляет место для добавления новых «недугов» в будущем.
ПРОБЛЕМА: При использовании SqlCommand тянуть набор записей пациента из таблицы PatientMedicalHistroy на основе PatientId Я хочу, чтобы перебирать список выбранных записей и проверить каждый соответствующий флажок соответственно.
КОД:
pIdstring = ("SELECT ailmentId FROM dbo.PatientMedicalHistory WHERE PatientId = " + pId.ToString());
cmd = new SqlCommand(pIdstring);
DataTable dt = new DataTable();
cmd.Connection = conn;
using (conn)
{
using (cmd)
{
conn.Open();
using (SqlDataReader drCbox = cmd.ExecuteReader())
{
dt.Load(drCbox);
//Need to check all checkboxes that are contained in this datatable.
}
}
}
}
HTML:
<fieldset class="auto-style93" style="background-image: url('Pictures/Bg_WhiteGrayGradient_Tall.jpg'); background-position: center; border-style: inset; border-width: medium">
<legend id="MedHistoryLegend" style="background-image: url('Pictures/Bg_WhiteGrayGradient_Tall.jpg'); border-style: inset; border-width: medium; font-family: 'Arial Black';">
<span class="auto-style194">MEDICAL HISTORY</span><asp:Button ID="EditHistory" runat="server" BackColor="White" BorderStyle="None" BorderWidth="0px" CssClass="auto-style189" Height="16px" Text="Edit" ToolTip="Edit Personal Information" OnClick="EditHistory_Click" />
</legend>
<table class="auto-style84" border="3">
<tr><td class="auto-style85">
<asp:CheckBox ID="AnemiaCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: Arial, Helvetica, sans-serif">Anemia</td>
<td class="auto-style39">
<asp:CheckBox ID="EmphysemaCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Emphysema</td>
<td class="auto-style39">
<asp:CheckBox ID="HypoglycemiaCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Hypoglycemia</td>
<td class="auto-style39">
<asp:CheckBox ID="ShinglesCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Shingles</td>
<td class="auto-style76">
<asp:CheckBox ID="UTICbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Urinary Tract Infection</td>
</tr>
<tr><td class="auto-style86">
<asp:CheckBox ID="ArthritisCbox" runat="server" Text=" " />
</td>
<td class="auto-style35" style="font-family: Arial, Helvetica, sans-serif">Arthritis</td>
<td class="auto-style31">
<asp:CheckBox ID="EpilepsyCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Epilepsy or Seizures</td>
<td class="auto-style39">
<asp:CheckBox ID="IrregularHBCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Irregular Heartbeat</td>
<td class="auto-style39">
<asp:CheckBox ID="SickleCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Sickle Cell Disease</td>
<td class="auto-style76">
<asp:CheckBox ID="JaundiceCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Yellow Jaundice</td>
</tr>
<tr><td class="auto-style86">
<asp:CheckBox ID="AsthmaCbox" runat="server" Text=" " />
</td>
<td class="auto-style35" style="font-family: Arial, Helvetica, sans-serif">Asthma</td>
<td class="auto-style31">
<asp:CheckBox ID="GlaucomaCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Glaucoma</td>
<td class="auto-style39">
<asp:CheckBox ID="KidneyCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Kidney Problems</td>
<td class="auto-style76">
<asp:CheckBox ID="SinusCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Sinus Trouble</td>
<td class="auto-style76">
</td>
</tr>
<tr><td class="auto-style85">
<asp:CheckBox ID="CancerCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: Arial, Helvetica, sans-serif">Cancer</td>
<td class="auto-style39">
<asp:CheckBox ID="HeartAtkCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Heart Attack</td>
<td class="auto-style39">
<asp:CheckBox ID="LeukemiaCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Leukemia</td>
<td class="auto-style76">
<asp:CheckBox ID="SpinaBifidaCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Spina Bifida</td>
<td class="auto-style76">
</td>
</tr>
<tr><td class="auto-style87">
<asp:CheckBox ID="ColdSoreCbox" runat="server" Text=" " />
</td>
<td class="auto-style36" style="font-family: Arial, Helvetica, sans-serif">Cold Sores/Fever Blisters</td>
<td class="auto-style33">
<asp:CheckBox ID="HeartMurmurCbox" runat="server" Text=" " />
</td>
<td class="auto-style62" style="font-family: arial, Helvetica, sans-serif">Heart Murmur</td>
<td class="auto-style65">
<asp:CheckBox ID="LiverCbox" runat="server" Text=" " />
</td>
<td class="auto-style30" style="font-family: arial, Helvetica, sans-serif">Liver Disease</td>
<td class="auto-style74">
<asp:CheckBox ID="StomachCbox" runat="server" Text=" " />
</td>
<td class="auto-style64" style="font-family: arial, Helvetica, sans-serif">Stomach/Intestinal Disease</td>
<td class="auto-style77">
</td>
</tr>
<tr><td class="auto-style88">
<asp:CheckBox ID="HeartDisorderCbox" runat="server" Text=" " />
</td>
<td class="auto-style122" style="font-family: Arial, Helvetica, sans-serif">Congenital Heart Disorder</td>
<td class="auto-style90">
<asp:CheckBox ID="HeartDiseaseCbox" runat="server" Text=" " />
</td>
<td class="auto-style122" style="font-family: arial, Helvetica, sans-serif">Heart Disease</td>
<td class="auto-style90">
<asp:CheckBox ID="JawPainCbox" runat="server" Text=" " />
</td>
<td class="auto-style124" style="font-family: arial, Helvetica, sans-serif">Pain in Jaw Joints</td>
<td class="auto-style92">
<asp:CheckBox ID="StrokeCbox" runat="server" Text=" " />
</td>
<td class="auto-style124" style="font-family: arial, Helvetica, sans-serif">Stroke</td>
<td class="auto-style92">
</td>
</tr>
<tr><td class="auto-style85">
<asp:CheckBox ID="DiabetesCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: Arial, Helvetica, sans-serif">Diabetes</td>
<td class="auto-style39">
<asp:CheckBox ID="HepACbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Hepatitis A</td>
<td class="auto-style39">
<asp:CheckBox ID="ParathyroidCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Parathyroid Disease</td>
<td class="auto-style76">
<asp:CheckBox ID="ThyroidCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Thyroid Disease</td>
<td class="auto-style76">
</td>
</tr>
<tr><td class="auto-style85">
<asp:CheckBox ID="DigestiveCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: Arial, Helvetica, sans-serif">Digestive Disorders</td>
<td class="auto-style39">
<asp:CheckBox ID="HepBorCCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">Hepatitis B or C</td>
<td class="auto-style39">
<asp:CheckBox ID="PsychCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Psychiatric Care</td>
<td class="auto-style76">
<asp:CheckBox ID="TumorCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Tumors or Growths</td>
<td class="auto-style76">
</td>
</tr>
<tr><td class="auto-style85">
<asp:CheckBox ID="DrugCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: Arial, Helvetica, sans-serif">Drug Addiction</td>
<td class="auto-style39">
<asp:CheckBox ID="HBPCbox" runat="server" Text=" " />
</td>
<td class="auto-style121" style="font-family: arial, Helvetica, sans-serif">High Blood Pressure</td>
<td class="auto-style39">
<asp:CheckBox ID="RheumatismCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Rheumatism</td>
<td class="auto-style76">
<asp:CheckBox ID="UlcerCbox" runat="server" Text=" " />
</td>
<td class="auto-style123" style="font-family: arial, Helvetica, sans-serif">Ulcers</td>
<td class="auto-style76">
</td>
</tr>
</table>
</fieldset>
Что такое сопоставление от данных к ячейкам? Также я предлагаю использовать SqlCommand.Paramaters для жестко запрограммированных запросов. –
Вы задумывались над созданием хранимой процедуры, которая может сворачивать данные? – JamieD77
Кратковременное решение, измените атрибут идентификатора вашего флажка, чтобы включить AilmentID в предсказуемый шаблон, например «AilmentCbox_1» «AilmentCbox_2» «AilmentCbox_3» и т. Д., Чтобы вы могли сопоставлять элементы управления с числовым значением. Долгосрочное решение, добавьте столбцы row_number и column_number в таблицу недугов, чтобы вы генерировали элементы управления флажками из базы данных динамически, а не жестко закодированы на странице ASPX. – user2638401