VB.NET中如何用Dapper从Access数据库取数据到Form2文本框
实现Form2文本框加载数据的解决方案
首先假设你的GetItemTransfersMaster方法用于根据指定条件(比如单据ID)查询包含Invno和Created字段的实体数据,先定义对应的实体类(如果还没有的话):
public class ItemTransferMaster { public string Invno { get; set; } public DateTime Created { get; set; } }
接下来分两种常见场景实现调用:
场景1:从Form1打开Form2时传递查询参数并加载数据
如果Form2由Form1触发打开(比如点击按钮),可以在打开时传入查询所需参数,然后在Form2中调用方法绑定数据:
Form1中打开Form2的代码
// Form1按钮点击事件中打开Form2,传入目标单据编号 private void btnOpenForm2_Click(object sender, EventArgs e) { string targetInvno = "INV001"; // 替换为Form1中实际的查询参数 Form2 form2 = new Form2(targetInvno); form2.Show(); }
Form2的代码修改
public partial class Form2 : Form { public Form2() { InitializeComponent(); } // 重载构造函数接收查询参数 public Form2(string invno) : this() { LoadData(invno); } private void LoadData(string invno) { // 调用GetItemTransfersMaster获取数据 ItemTransferMaster data = GetItemTransfersMaster(invno); if (data != null) { TextBox1.Text = data.Invno; TextBox2.Text = data.Created.ToString("yyyy-MM-dd HH:mm:ss"); // 按需格式化日期 } else { // 无数据时的提示 TextBox1.Text = "无匹配数据"; TextBox2.Text = "无匹配数据"; } } // 你的GetItemTransfersMaster方法(示例为根据Invno查询) private ItemTransferMaster GetItemTransfersMaster(string invno) { // 这里是你原有的查询逻辑,比如从数据库获取数据 using (var db = new YourDbContext()) { return db.ItemTransferMasters.FirstOrDefault(t => t.Invno == invno); } } }
场景2:Form2独立加载数据(比如打开时自动加载最新单据)
如果Form2无需从Form1传参,而是自身触发加载(比如打开时加载最新单据),可以在Form2的Load事件中调用方法:
private void Form2_Load(object sender, EventArgs e) { // 调用方法获取最新数据 ItemTransferMaster latestData = GetItemTransfersMaster(); if (latestData != null) { TextBox1.Text = latestData.Invno; TextBox2.Text = latestData.Created.ToString("yyyy-MM-dd HH:mm:ss"); } } // 无参版本的GetItemTransfersMaster,用于获取最新数据 private ItemTransferMaster GetItemTransfersMaster() { using (var db = new YourDbContext()) { return db.ItemTransferMasters.OrderByDescending(t => t.Created).FirstOrDefault(); } }
关键注意事项
- 确保
GetItemTransfersMaster返回的实体类包含Invno和Created的有效属性,否则需调整方法返回值或实体类定义。 - 必须处理
data == null的情况,避免空引用异常导致程序崩溃。 - 数据库操作记得用
using语句释放资源,或确保数据上下文的正确管理。
内容的提问来源于stack exchange,提问作者roy
相关产品推荐
相关产品推荐

