使用DataGrid控件时遇到一个问题,我先使用SQL由数据库中查询出数据,将其显示在DataGrid中,然后我想由DataGrid向数据库中添加数据,即使用一个“添加”按钮,点击按钮时DataGrid就会增加一个空行,再向空行中输入数据,最后保存完成,但是我为了使数据输入的更加规范并且减少输入的工作量,想在DataGrid增加那个空行的时候事先将一些内容填写到各列当中,我的具体做法如下:
1、执行SQL语句,将查询出的数据赋值给变量rec,并通过Adodc控件显示在DataGrid中
2、点击“添加”按钮,将DataGrid控件的AllowAddNew属性置为True(这样就生成一条空行)
3、将DataGrid的焦点设置到新增加的一行(即DataGrid.Row = rec.RecordCount),并将空行的各列填入内容
即:DataGrid.Columns(0).Text = "*****"
    DataGrid.Columns(1).Text = "*****"
    DataGrid.Columns(2).Text = "*****"以上方法在查询出的数据不为空的情况下可以实现,但是如果数据为空(即rec.RecordCount = 0,DataGrid控件中无数据显示)时,就出现错误了,我用断点进行检查,发现此时DataGrid.Row = -1,系统报错“行号无效”,请教各位问题到底出在哪里?怎样实现这样的功能?谢谢!!

解决方案 »

  1.   

    DataGrid.AllowAddNew = True
    If Adodc1.Recordset.RecordCount = 0 Then
       Adodc1.Recordset.AddNew
    Else
       DataGrid.Row = Adodc1.Recordset.RecordCount
    End If    DataGrid.Columns(0).Text = "*****"
        DataGrid.Columns(1).Text = "*****"
        DataGrid.Columns(2).Text = "*****"
      

  2.   

    做一下判断判断rec.recordcount是否等于0
    如果等于0,则不执行这一操作!!!
    否则势行!
      

  3.   

    tslqyfc(飞狼) ,谢谢您的答复,但是还有个问题,DataGrid控件的初始状态就已经存在一个空行,我使用了您说的方法后,一运行便在原有空行的基础之上又新增了一行,在这一行中有我欲事先填入的内容,还请您帮忙看一下如何才能只存在一行?十分感谢!!
      

  4.   

    qingming81(晴明),您的办法在用户有输入内容的情况下还可以,但是如果用户没有向新行中输入内容呢?那岂不是在数据库中多了一行垃圾数据?麻烦您再给想想别的办法。同时请教各位高手给以指点,多谢多谢!另外,分值我可以再加。