首页 新闻 搜索 专区 学院

C#:关于datagridview

0
悬赏园豆:5 [已解决问题] 解决于 2016-05-16 21:26

现在要实现这样的功能:

运行程序之后,弹出一个界面,界面里面有个datagridview。只显示表头,里面是空的。现在第一列要求你手动输入,输入完成之后后面的列会自动出来(是通过第一列里面输入的数据在一张表中自动查询出来的。),请问这样的功能怎么实现?有参考例子可以发一下连接,多谢多谢。有点急 

C#
简爱工作室的主页 简爱工作室 | 初学一级 | 园豆:11
提问于:2016-01-20 13:42
< >
分享
最佳答案
0

实时编辑更新数据的代码片段,希望对你有帮助。

    // 单元格编辑开始时
    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;
    }
收获园豆:5
宁涛 | 菜鸟二级 |园豆:348 | 2016-01-20 14:48
其他回答(1)
0

记得我刚毕业的时候,去一家日企,自学的C#,给你个思路。

你用的VS,里面有一个datagridview控件,怎么用我想你应该会, 第一列要求手动输入,这里我不是很清楚你业务的需求, 但是手动输入时可以设置的。 都是这个VS里自己带的控件功能。

输入完成后(何为输入完成,我想是鼠标点击其他地方的时候触发一个事件,这个事件你别担心,控件里也有)。

你说的列到底有多长, 我很好奇。 一列太宽泛。 一列到底有多少行?在这个事件触发的时候,你就可以在事件里 写函数了。

拿到你输入的值, 去后台查询。 然后展示, 我想这个应该不难吧。  只是最简单的查询而已。

斯拉克 | 园豆:223 (菜鸟二级) | 2016-01-20 14:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册