【发布时间】:2017-06-07 13:37:34
【问题描述】:
我有一个 DataGridView,它显示包含 4 列信息的表格行。有 4 个文本框用于向 datagridview 输入数据。我已经实现了一个搜索功能(下面的代码)来搜索表中的数据。我想要的是,如果我搜索了一个 ID(例如 123855)并且 datagridview 只显示 ID 为 123855 的一行,则其他 3 个列的值将传递给其他 3 个文本框。
void SearchBoxTextChanged(object sender, EventArgs e)
{
koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("Select * from mahasiswa where nim like '"+searchBox.Text+"%' or nim like'%"+searchBox.Text+"' or nim like '%"+searchBox.Text+"%' ", koneksi);
da.Fill(dt);
Tabel.DataSource = dt.DefaultView;
koneksi.Close();
}
我该怎么做?
谢谢。
【问题讨论】:
-
简单的逻辑是,一旦您根据文本框的值(比如说 ID,123855)从数据库中检索数据,您应该检查表中有多少行。如果它只有一行,那么您应该从该行中获取其他 3 列的值并将它们设置到其他 3 个文本框。
-
如果从搜索中返回超过一 (1) 个项目,您会在文本框中显示什么?此外,如果这是用户在文本框中键入的搜索,则可能不希望在用户键入时更新那些相同的文本框。从
DataGridView中的单元格中获取值并不难,问题是您想在哪个文本框中显示哪些单元格? -
@JohnG 搜索框仅用于搜索ID(只有一列)。如果我搜索 ID 123855 并且表格显示包含 ID 123855 的行和其他 3 列,我希望将其他 3 列的值传递给 3 个文本框。
-
嗯……这并没有真正回答我的问题。如果
DataGridView中只有一行,那么要从该行获取值,您可以使用类似:textBox1.Text = DatagridView1.Rows[0].Cells[0].Value获取第 0 列中的值,.Cells[1].Value获取第 1 列中的值……等等..发布的答案显示了这一点。
标签: c# winforms datagridview