首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# WinForms 兩窗體傳值:就診號查詢顯示患者信息

     編輯:程式設計綜合問答

場景

Form1 輸入就診號(ID),點擊確定打開 Form2 並顯示該 ID 對應的數據庫完整信息。

實現方案:公共屬性傳值

// Form1.cs
public partial class Form1 : Form {
    private string _id;
    public string PatientID {
        get { return _id; }
        set { _id = value; }
    }

    private void btnConfirm_Click(object sender, EventArgs e) {
        PatientID = txtID.Text; // 賦值
        Form2 frm2 = new Form2();
        frm2.Show();
        this.Hide();
    }
}

// Form2.cs
public partial class Form2 : Form {
    public Form2() {
        InitializeComponent();
        LoadData();
    }

    private void LoadData() {
        Form1 frm1 = (Form1)Application.OpenForms["Form1"];
        if (frm1 != null) {
            string id = frm1.PatientID;
            // 使用 id 查詢數據庫並綁定控件
            // string sql = "SELECT * FROM Patient WHERE ID = @id";
            // ...
        }
    }
}

替代方案

  • 構造函數傳參:Form2 frm2 = new Form2(txtID.Text); 在 Form2 構造函數接收。
  • 靜態類/單例:適合全局共享數據,但增加耦合。

建議

優先使用構造函數傳參,語義清晰且避免依賴窗體實例名稱。數據庫查詢務必使用參數化命令防注入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved