【问题标题】:Display data in TextBox that clicked on DataGridView在单击 DataGridView 的 TextBox 中显示数据
【发布时间】:2019-02-24 23:09:15
【问题描述】:

我在单击 DataGridView 时无法在文本框中显示数据,因为我在 DataGridView 上仅显示全名和学生 ID 列。

con.Open();
SqlDataAdapter sda = new SqlDataAdapter("SELECT Student_ID as S_ID, Fname +' '+ Lname +' '+ Mname as NAME from student", con);
DataTable dtbl = new DataTable();
sda.Fill(dtbl);
dataGridView1.DataSource = dtbl;
dataGridView1.Columns[0].Width = 40;
dataGridView1.Columns[1].Width = 200;
dataGridView1.RowHeadersVisible = false;
con.Close();

【问题讨论】:

  • 该代码并没有真正显示出解决您的问题的任何努力。它确实表明您需要快速学习使用 sql 参数以避免 sql 注入和格式错误。
  • 感谢您的回复,就像我说的我只是一个初学者,我只是一个孩子,你知道试图从这里获得帮助。
  • 使用数据绑定;将文本框绑定到数据数据网格视图使用数据源的同一数据源。您还需要学习如何使用data source window
  • 此外,如果您只加载 Id 和 Name,您不能期望在没有其他查询的情况下显示表单上的所有其他字段。作为一个选项,您可以使用第一个查询加载所有数据,但在数据网格视图中仅显示 Id 和 Name 列。

标签: c# winforms


【解决方案1】:

所以,如果我理解正确的话。当您单击 datagridview 单元格时,您想在文本框中显示信息吗?

从这里开始:

  • 单击您的数据网格视图。 -> 选择事件 -> 双击“CellContentClick”

从这里您可以从 datagridview 中选择数据,并将其插入到文本框中,如下所示:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    YourTextBoxName.Text = dataGridView1.CurrentRow.Cells["Lname"].Value.ToString();
} 

【讨论】:

  • 但我没有 Lname 单元,因为我只在 datagridview 上显示名称和 S_id
  • 看上面的图片我只在datagridview上显示名字和id我想要的是当我点击那个名字时文本框会显示我添加到它们的数据。
  • 使用CellContentClick 肯定是错误的。如果用户单击行/单元格标题怎么办?如果用户通过键盘在记录之间移动怎么办?
  • @RonaldCaymo 你到底在说什么文本框?我可以从您的回答中读到:当我单击 datagridview 名称时,您希望它显示在文本框中。这就是这段代码正在做的事情。而“Lname”是因为您在 sql 查询中选择了它,我假设您的意思是“Lastname”。但是您可以简单地将“Lname”更改为您的数据库字符串。如果你不是这个意思,你必须重新问你问题,因为我找不到任何其他答案。 :)
  • @RezaAghaei 好吧,你建议用什么来代替 CellContentClick?还有其他您可以选择仅特定行的吗? :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 2020-09-24
  • 1970-01-01
相关资源
最近更新 更多