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

如何将SQLiteDataTable中的数据传递到TextBox控件

解决SQLite数据关联到TextBox的问题

我来帮你梳理下代码里的问题,一步步解决把SQLite数据显示到TextBox的问题:

你的代码里存在几个关键问题:

  • SQL查询逻辑错误:你用了listProdutos.SelectedIndex(这是选中项的索引,是整数)去匹配表中的NOME_PRODUTO(字符串类型),应该取选中项的文本内容,比如listProdutos.SelectedItem.ToString()
  • 类型不匹配错误:precoIng[0]是DataTable对象,不能直接赋值给TextBox.Text(需要字符串类型),得从DataTable里提取具体的字段值
  • SQL注入风险:直接拼接字符串生成SQL语句很危险,应该用参数化查询
  • 资源未正确释放:数据库连接和DataAdapter没有自动释放资源,容易造成内存泄漏

修正后的完整代码:

private void btnUpdate_Click(object sender, EventArgs e)
{
    // 先判断是否选中了产品
    if (listProdutos.SelectedItem == null)
    {
        MessageBox.Show("请先选择一个产品");
        return;
    }

    // 使用using语句自动管理资源,不用手动Close
    using (var con = new SQLiteConnection("你的数据库连接字符串"))
    {
        con.Open();
        // 参数化查询,避免SQL注入,同时匹配正确的字段值
        string query = "SELECT PRECO_PRODUTO FROM INGREDIENTES WHERE NOME_PRODUTO = @NomeProduto";
        using (var adapter = new SQLiteDataAdapter(query, con))
        {
            // 添加参数,传入选中的产品名称
            adapter.SelectCommand.Parameters.AddWithValue("@NomeProduto", listProdutos.SelectedItem.ToString());
            
            DataTable priceTable = new DataTable();
            adapter.Fill(priceTable);

            // 判断是否查询到数据
            if (priceTable.Rows.Count > 0)
            {
                // 提取第一行的价格字段,转成字符串赋值给TextBox
                tbPrecoProduto.Text = priceTable.Rows[0]["PRECO_PRODUTO"].ToString();
            }
            else
            {
                tbPrecoProduto.Text = "未找到对应产品的价格";
            }
        }
    }
}

关键细节说明:

  1. 参数化查询:用@NomeProduto作为占位符,通过Parameters.AddWithValue传入实际值,既避免了SQL注入,也保证了数据类型匹配
  2. 资源自动释放:using语句会在代码块结束后自动调用Dispose方法,关闭数据库连接并释放DataAdapter资源,不用手动写con.Close()
  3. 数据提取逻辑:查询结果存在DataTable的Rows集合里,因为你的查询条件是产品名称(应该唯一),所以取第一行的PRECO_PRODUTO列值即可
  4. 空值判断:先检查列表是否有选中项,再检查查询结果是否为空,避免出现空引用异常

内容的提问来源于stack exchange,提问作者Igor Henriques

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:04:48