在我的应用程序中,我使用了OleDbDataAdapter的&通过数据集访问数据。代码是:
Dim id As Integer
Try
typeSql = "SELECT DOCHDR.dochdr_lDocId, TXNTYP.txntyp_cDocTypCat FROM TXNTYP INNER JOIN DOCHDR ON TXNTYP.txntyp_sDocTyp = DOCHDR.dochdr_sDocType WHERE ((DOCHDR.dochdr_lDocId)=395920);"
typeAdap = New OleDb.OleDbDataAdapter(typeSql, connStr)
typeDs = New DataSet()
type_adap.Fill(type_ds) ' THROWS ERROR
Catch ex As Exception
Console.WriteLine("ERROR : " + ex.Message + " INNER " + ex.InnerException.ToString())
Console.WriteLine("STACK = " + ex.StackTrace())
Me.Close()
End Try
我在此之前和之后使用其他OleDbAdapter,但它只适用于抛出异常。其他所有的adaps / ds r都以与上面相同的方式使用不同的变量填充。
MEssage : Object reference not set to an instance of an object.
如果我在DB中执行查询,它会显示1行
我无法弄清楚这里有什么问题。任何人都可以指出我哪里出错了吗?
答案 0 :(得分:2)
您似乎使用了错误的DataSet
:
type_adap.Fill(type_ds)
应该是
typeAdap.Fill(typeDs)
因为您之前正在调用typeDs = New DataSet()
行。
答案 1 :(得分:2)
Dim id As Integer
Try
typeSql = "SELECT DOCHDR.dochdr_lDocId, TXNTYP.txntyp_cDocTypCat FROM TXNTYP INNER JOIN DOCHDR ON TXNTYP.txntyp_sDocTyp = DOCHDR.dochdr_sDocType WHERE ((DOCHDR.dochdr_lDocId)=395920);"
typeAdap = New OleDb.OleDbDataAdapter(typeSql, connStr)
typeDs = New DataSet()
typeAdap.Fill(typeDs) ' THROWS ERROR
Catch ex As Exception
Console.WriteLine("ERROR : " + ex.Message + " INNER " + ex.InnerException.ToString())
Console.WriteLine("STACK = " + ex.StackTrace())
Me.Close()
End Try