我有以下设计和数据库表:
1- machine表,其中包含Machine_id,Machine_name。
列2- LAB_RESULTS表:
SELECT [ID]
,[SAMPLE_ID]
,[ORDER_ID]
,[TESTID]
,[GROUPID]
,[NORMAL_RESULT]
,[SAMPLE_STATUS]
,[EXAMINED_BY]
,[EXAMINED_DATE]
,[APPROVED_BY]
,[APPROVED_DATE]
,[RESULT_NUMBER]
,[RESULT_REPORT]
,[RESULT_NOTE]
,[packageid]
,[machine_id]
,[deptid]
,[patient_no]
,[custid]
,[REQ_FORM_NO]
,[serial]
,[text]
,[value]
FROM LAB_RESULTS
3-我正在保存测试结果以及该测试完成的机器。
4-我想创建更新窗口并检索测试信息和机器名称以使用datagridview更新机器名称并在组合框中填充机器名称。
5-我创建了以下存储过程:
ALTER proc [dbo].[GET_MACHINES_FOR_RESULT]
@ORDER_ID int,
@TESTID int
AS
SELECT Machines.Machine_id,Machine_name FROM Machines
inner join LAB_RESULTS on LAB_RESULTS.machine_id = Machines.Machine_id
where Machines.Machine_id = LAB_RESULTS.machine_id
and LAB_RESULTS.ORDER_ID = @ORDER_ID
and LAB_RESULTS.TESTID = @TESTID
6-在c#应用程序窗口中,我创建了以下公共数据表:
public DataTable GET_MACHINES_FOR_RESULT(int ORDER_ID , int TESTID)
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DataTable dt = new DataTable();
SqlParameter[] param = new SqlParameter[2];
param[0] = new SqlParameter("@ORDER_ID", SqlDbType.Int);
param[0].Value = ORDER_ID;
param[1] = new SqlParameter("@TESTID", SqlDbType.Int);
param[1].Value = TESTID;
dt = DAL.SelectData("GET_MACHINES_FOR_RESULT", param);
DAL.close();
return dt;
}
7-最后一步我创建了组合框列,并在选择ORDER_NO后使用此代码填充组合框和数据视图,但我得到的错误输入字符串格式不正确。
dgvResult.DataSource = result.GetChemForApprove(txtOrder.Text);
DataGridViewComboBoxColumn cmbmachine = new DataGridViewComboBoxColumn();
cmbmachine.HeaderText = "Machine Name";
cmbmachine.Name = "machine";
for (int i = 0; i < dgvResult.Rows.Count; i++)
{
cmbmachine.DataSource = result.GET_MACHINES_FOR_RESULT(Convert.ToInt32(txtOrder.Text), Convert.ToInt32(dgvResult.Rows[i].Cells[2].ToString())); // Bind combobox with datasource.
}
cmbmachine.ValueMember = "Machine_id";
cmbmachine.DisplayMember = "Machine_name";
dgvResult.Columns.Add(cmbmachine);
GetChemForApprove存储过程将使用订单信息填充datagridview。
如何更改代码以在组合框中读取机器名称。
对不起,如果问题很大,但我试图添加所有细节,以清除一切。
编辑:我只是在LAB_RESULTS表中保存testid + machine_id,我需要创建另一个窗口来更新machine_name,例如表lab_results包含以下顺序:
order_id testid machine_id
1 1 4
1 2 4
1 3 2
1 4 2
当我选择订单号1时,我需要在新窗口中看到我需要阅读的内容
testid +机器名称。
我想在组合框列中获取机器名称,但显示保存的机器名称,我想将机器名称更新为另一个机器名称。
这个想法是正确的还是给我另一种方法来实现这一点。