当前位置: 首页 > 面试题库 >

单击数据网格行并在文本框中显示其内容

卓雅达
2023-03-14
问题内容

我正在尝试使用数据网格的内容填充文本框。

我正在使用一个名为XYZCompany.accbd的数据源。我用数据库的内容填充dgv,在这种情况下,包含供应商ID(自动编号字段),供应商名称,供应商地址,电话号码和合同名称。

首先,我用这些字段填充dgv。然后,我要努力的下一步是,当我单击dgv中的一行时,它应该在文本框中显示该行的数据。问题是,当我单击dgv行时,在文本框中没有显示任何内容,并且没有收到任何错误。

我将连接作为参数传递给新表单。但是我还是会指定它。这是我通过的声明:

    OleDbConnection dbConn;
    OleDbCommand dbCmd;
    DataSet ds = new DataSet();
    OleDbDataAdapter dbAdapter;
    private void ViewAllSuppliers_Load(object sender, EventArgs e)
    {
        dbConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data     Source=XYZCompany.accdb");

        dbCmd = new OleDbCommand("SELECT * FROM Supplier ORDER BY [Supplier ID]", dbConn);


        dbAdapter = new OleDbDataAdapter(dbCmd);
        dbAdapter.Fill(ds, "Suppliers");

    }

    private void btnViewSuppliers_Click(object sender, EventArgs e)
    {
        dgvSuppliers.DataSource = ds.Tables["Suppliers"];
    }

那就是我传递的参数代码。

这是我尝试用来填充文本框的形式的代码:

public partial class ChangeSupplier : Form
{
    OleDbConnection dbConn;
    OleDbCommand dbCmd;
    DataSet ds;
    OleDbDataAdapter dbAdapter;
    OleDbDataReader dbReader;

    public ChangeSupplier(OleDbConnection dbConn, OleDbCommand dbCmd, DataSet ds, OleDbDataAdapter dbAdapter)
    {
        InitializeComponent();
        this.dbConn = dbConn;
        this.dbCmd = dbCmd;
        this.ds = ds;
        this.dbAdapter = dbAdapter;
    }

    private void ChangeSupplier_Load(object sender, EventArgs e)
    {
        dgvSuppliers.DataSource = ds.Tables["Suppliers"];
    }

    private void dgvSuppliers_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (dgvSuppliers.SelectedRows.Count > 0)
        {

            dbConn.Open();

            dbCmd = new OleDbCommand("SELECT * FROM Supplier WHERE [Supplier ID] = '" + dgvSuppliers.SelectedRows[0].Cells[0].Value + "'", dbConn);

            dbReader = dbCmd.ExecuteReader();

            while (dbReader.Read())
            {

                txtName.Text = dbReader["[Supplier Name]"].ToString();
                txtTelNo.Text = dbReader["[Telephone No]"].ToString();
                txtAddress.Text = dbReader["[Supplier Address]"].ToString();
                txtContactName.Text = dbReader["[Contact Name]"].ToString();

            }
        }
    }
}

请随时提出任何建议…预先感谢


问题答案:

这是上述问题的解决方案:

    private void dgvSuppliers_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex >= 0)
        {

            DataGridViewRow row = this.dgvSuppliers.Rows[e.RowIndex];

            txtID.Text = row.Cells["Supplier ID"].Value.ToString();
            txtName.Text = row.Cells["Supplier Name"].Value.ToString();
            txtTelNo.Text = row.Cells["Telephone No"].Value.ToString();
            txtAddress.Text = row.Cells["Supplier Address"].Value.ToString();
            txtContactName.Text = row.Cells["Contact Name"].Value.ToString();

        }

    }

我使用行索引来查找用户单击的单元格。



 类似资料:
  • 问题内容: 在最近的几天里,我试图从SQL表中获取数据并将其放入文本框。 表名称:“检查”。 我正在使用的代码: 结果我什么也没得到。有人知道为什么吗?也许我没有正确调用SQL? 问题答案: 一些评论: 不要使用,仅指定您需要的字段 使用-更少的代码,保证处理 我假设这是一个测试程序,否则在循环中将其重置为无意义

  • 请帮助我,因为我是java脚本的新手。我想显示一个文本文件的数据,它在“D:\vikas.txt”路径到一个文本框。如果有人能提供我一个完整的代码,这将是非常有帮助的。我使用的是谷歌chrome浏览器。如果你需要任何其他信息,请告诉我。 谢谢

  • 问题内容: 我正在尝试从gridview项内的按钮启动活动,这意味着 当用户单击gridview项时,它应该执行一项功能,而当 用户单击gridview项内的按钮时,它应该执行另一项 功能,让我详细说明一下,这是我的单个项目布局,正在 我的gridview中填充; here is how the above layout looks: and here is my adapter from whe

  • 在单击链接后,我需要在引导4模式中显示表行数据。 HTML: JS: 莫代尔: 在操作中,当我单击链接时,在控制台中看到以下错误: 未捕获的ReferenceError:未定义结果 我怎样才能修复这个错误?! 此处演示

  • 我们刚刚开始实施NatTable,我们非常高兴看到性能的提高。然而,我们在实现特定功能时遇到了困难。 我们想要的是在单元格中有可点击的文本,然后它将引用我们选择并进入视图的表中的一行。基本上,类似于: 通过单击。

  • 所以,我正在尝试制作一个.html文件,在这里我可以选择任何类型的文件,比如.txt或.html或.py,并将所述文件的内容放入html页面上的文本区中。我该怎么做呢?我不知道从哪里开始。