我是VB.net的新手。我需要修改连接到Oracle db的现有应用程序。
我的问题是:如何从vb插入oracle序列生成的值? 到目前为止,我有以下代码:
Dim mpData As New MaximoDataSetTableAdapters.MEASUREPOINTTableAdapter
Dim mpTable As New MaximoDataSet.MEASUREPOINTDataTable
mpData.Fill(mpTable)
Dim mData As New MaximoDataSetTableAdapters.MEASUREMENTTableAdapter
Dim mTable As New MaximoDataSet.MEASUREMENTDataTable
Dim mpRow As MaximoDataSet.MEASUREPOINTRow
For Each mpRow In mpTable
Dim mRow As MaximoDataSet.MEASUREMENTRow
mRow = mTable.NewRow()
mRow.POINTNUM = mpRow.POINTNUM
mRow.MEASUREDATE = CStr(Now)
mRow.MEASUREMENTVALUE = tTotal
mTable.Rows.Add(mRow)
mData.Update(mTable)
next
但我收到一个错误,因为我有另一个字段,ROWSTAMP,它是由序列生成的?
请建议。
此致 拉杜。
答案 0 :(得分:0)
在Oracle中,列不是“由序列生成的”。您需要自己从序列中获取下一个值,并在插入行时提供此值:
SELECT mysequence.nextval INTO some_variable FROM dual;
然后在insert语句中使用some_variable中的值。
答案 1 :(得分:0)
您可以创建“before insert”触发器,该触发器使用序列中的下一个值填充rowstamp列。我自己并不喜欢这种策略,但它是一种选择。
有一个如何执行此操作的示例here