You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:55:14