调用代码:
----------------------------------------------------------
 Sub DelItem(ByVal Sender As Object, ByVal e As DataGridCommandEventArgs)
        If e.CommandSource.commandname = "Del" Then
            Dim sDel As New Chg_information.SqlOperate("Localhost", "Mysite", "sa", "lsy123")            sDel.GetManagerDel(e.Item.ItemIndex, "SoftWare", "list")
        End If
    End Sub
----------------------------------------------------------类代码:
----------------------------------------------------------
Public Class SqlOperate
'    Private strConn As String
    Private ObjConn As SqlClient.SqlConnection
    Private objCommand As SqlClient.SqlCommand
    Private sOleDbDa As SqlClient.SqlDataAdapter
    Private sDataSet As New DataSet
'
Sub New(ByVal _strServer As String, ByVal _strDB As String, ByVal _strUid As String, ByVal _strPwd As String)
strConn = "Server=" & _strServer & ";Database=" & _strDB & ";User id=" & _strUid & ";password=" & _strPwd
ObjConn = New SqlClient.SqlConnection(strConn)
objCommand = New SqlClient.SqlCommand
sDataSet = New DataSet
End Sub'
Function GetManagerDel(ByVal sid As Integer, ByVal DelTable As String, _
    ByVal DsTableName As String)
        Dim DelSql As String
        DelSql = sDataSet.Tables(DsTableName).Rows(sid).Item("LS_ID")  '错在这行
        Dim Sql = "Delete From " & DelTable & " Where LS_ID='" & DelSql & "'"
        sOleDbDa = New SqlClient.SqlDataAdapter(Sql, ObjConn)
        sOleDbDa.Fill(sDataSet, DsTableName)
        sDataSet.Clear()
    End Function
End Class
----------------------------------------------------------提示错误:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。错在这行:
-----------------------------------------------------------
DelSql = sDataSet.Tables(DsTableName).Rows(sid).Item("LS_ID")
-----------------------------------------------------------

解决方案 »

  1.   

    Rows没有Item这个这个属性了啊
    LS_ID是不是字段?
    是的话  DelSql = sDataSet.Tables(DsTableName).Rows(sid)("LS_ID") 
    不是很懂vb,反正c#就这样写 DelSql = sDataSet.Tables(DsTableName).Rows(sid)["LS_ID"];
      

  2.   

    DataSet.Table[0].Rows 没ITEM這屬性
    DataSet.Table[0].Select  行不?
      

  3.   

    我试了,好象不行挨..~~大家帮帮忙看看.谢谢啦LS_ID是 字段
      

  4.   

    c#的写法:DelSql = sDataSet.Tables[DsTableName].Item[sid]["LS_ID"]
    vb的我不会
      

  5.   

    where did you fill sDataSet???
      

  6.   

    其实我就是想获取这条记录的 LS_ID
      

  7.   

    这是DataGrid的数据显示的函数在 Public Class SqlOperate
    内的
    ---------------------------------------------------------------------
        Function GetData(ByVal sSelect As String, ByVal DsTableName As String, ByVal SqlTable As Object, _
        ByVal strGrid As DataGrid)
            Dim Sql = "select " & sSelect & " from " & SqlTable
            sOleDbDa = New SqlClient.SqlDataAdapter(Sql, ObjConn)
            sOleDbDa.Fill(sDataSet, DsTableName)
            sDataView = sDataSet.Tables(DsTableName).DefaultView
            strGrid.DataSource = sDataView
            strGrid.DataBind()
        End Function
    -----------------------------------------------------------------
      

  8.   

    don't know what you are doing, since there are probably better ways to do that, but if you insist, try something likeFunction GetManagerDel(ByVal sid As Integer, ByVal DelTable As String, _
        ByVal DsTableName As String)sOleDbDa = new SqlClient.SqlDataAdapter("select * from " + DelTable, objConn)
    sDataSet = New DataSet
    sOleDbDa.Fill(sDataSet,DsTableName)

            Dim DelSql As String
            DelSql = sDataSet.Tables(DsTableName).Rows(sid).Item("LS_ID")
            Dim Sql = "Delete From " & DelTable & " Where LS_ID='" & DelSql & "'"
            sOleDbDa = New SqlClient.SqlDataAdapter(Sql, ObjConn)
            sOleDbDa.Fill(sDataSet, DsTableName)
            sDataSet.Clear()
        End Function
    End Class