我正在开发一个兽医应用程序,使用c#和sql。当我有权访问客户机历史记录时,它将填充我的pacient datagridview。我想知道当我选择了pacient的行时,如何从pacient datagridview填充clinic history datagridview。已经从load执行了clearselection()以取消选择任何pacient,但是我尝试了执行selectedrow事件,在clinic history datagridview上什么也没有发生。如果需要,我可以把代码或图片后。
ps:门诊历史表有外键链接到pacient表。
编辑:这是我写的代码。getdata获取pacient的表,getdata2获取clinichistory的表。
private void GetData(string selectCommand)
{
try
{
dataAdapter = new SqlDataAdapter(selectCommand, connString);
table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
bindingSource17.DataSource = table;
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
private void GetData2(string selectCommand)
{
dataGridView3.DataSource = null;
try
{
dataAdapter = new SqlDataAdapter(selectCommand, connString);
table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
bindingSource18.DataSource = table;
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
//这是让我困惑的部分,因为pacient表工作得很好,但clinichistory表却不是这样。下面是一个客户端搜索,它返回客户端拥有的pacient
private void button12_Click_1(object sender, EventArgs e)
{
Form7 Buscarcli = new Form7();
Buscarcli.TransfEvent += frm_TransfEvent;
Buscarcli.ShowDialog();
dataGridView2.DataSource = bindingSource17;
if (lblID.Text != null)
{
GetData("Select * from Pacientes where id_pacientes like '%" + lblID.Text + "%'");
}
}
//在这之后,idk如何继续让它工作。bindingsource17是pacients的datagridview,bindingsource18是相同的,但用于clinichistory。
非常感谢你。附言:我有几个星期的编码经验,所以抱歉,如果它看起来像一个完全混乱。我尽我所能。
1条答案
按热度按时间jw5wzhpr1#
我敢肯定,这和你的所作所为完全不同。简单的方法是:
向项目中添加新数据集
打开它,右击表面,选择“添加tableadapter”,配置connectionstring
添加如下查询
SELECT * FROM Patient WHERE ID = @id
完成向导,调用查询fillbyid/getdatabyid添加另一个查询;右键单击tableadapter,添加查询。。
SELECT * FROM Patient WHERE lastName LIKE @lastName
-或者你用什么搜索病人叫它fillbylastname(或者别的什么)
添加另一个tableadapter-
SELECT * FROM ClinicHistory WHERE ID = @Id
,fillbyid等,完成在此基础上再增加一个wuery;
SELECT * FROM ClinicHistory WHERE PatientID = @PatientID
填充物等保存数据集
切换到窗体
显示数据源窗口(视图菜单,其他窗口)
将“患者”节点拖到窗体上
展开“患者”节点
将clinichistory拖到窗体上,它是patients表节点的子节点,而不是它的对等节点
切换到代码,从toolstriptextbox中找到填充患者表的行,在其下添加以下行:
把这行改成:
根据上下文调整名称(我猜)
运行应用程序;将患者姓名放入顶部导航器(文本框),然后单击“填充”。。许多病人(希望如此)都会负荷。。当您单击其中任何一个时,clinichistory表将自动更新以显示相关数据