现在要实现这样的功能:
运行程序之后,弹出一个界面,界面里面有个datagridview。只显示表头,里面是空的。现在第一列要求你手动输入,输入完成之后后面的列会自动出来(是通过第一列里面输入的数据在一张表中自动查询出来的。),请问这样的功能怎么实现?有参考例子可以发一下连接,多谢多谢。有点急
实时编辑更新数据的代码片段,希望对你有帮助。
// 单元格编辑开始时 private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { //编号和修改时间不可编辑 if ((0 == e.ColumnIndex) || (7 == e.ColumnIndex)) { e.Cancel = true; } } // 单元格编辑结束时 private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { // 保存数据 // MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()); string CurrentCellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); // 空值不处理 if ("" == CurrentCellValue) { return; } // 除性别字段外按字符串保存 if (2 != e.ColumnIndex) { CurrentCellValue = "'" + CurrentCellValue + "'"; } string ModifyTime = DateTime.Now.ToString(); // 更新数据 string StrSql = "update db_customer" + " set " + cust_names[e.ColumnIndex] + " = " + CurrentCellValue + " , " + cust_names[7] + " = '" + ModifyTime + "'" + " where " + cust_names[0] + " = " + dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); AcsDb.ExecuteSql(StrSql); // 重新加载顾客列表 //LoadCustomerData(); dataGridView1.Rows[e.RowIndex].Cells[7].Value = ModifyTime; } // 输入数据格式错误时提示信息 private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) { // 返回上一次数据 e.Cancel = false; }
记得我刚毕业的时候,去一家日企,自学的C#,给你个思路。
你用的VS,里面有一个datagridview控件,怎么用我想你应该会, 第一列要求手动输入,这里我不是很清楚你业务的需求, 但是手动输入时可以设置的。 都是这个VS里自己带的控件功能。
输入完成后(何为输入完成,我想是鼠标点击其他地方的时候触发一个事件,这个事件你别担心,控件里也有)。
你说的列到底有多长, 我很好奇。 一列太宽泛。 一列到底有多少行?在这个事件触发的时候,你就可以在事件里 写函数了。
拿到你输入的值, 去后台查询。 然后展示, 我想这个应该不难吧。 只是最简单的查询而已。