使用vb.net插入oracle序列生成的值

时间:2010-12-03 09:33:32

标签: vb.net oracle insert sequences

我是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,它是由序列生成的?

请建议。

此致 拉杜。

2 个答案:

答案 0 :(得分:0)

在Oracle中,列不是“由序列生成的”。您需要自己从序列中获取下一个值,并在插入行时提供此值:

SELECT mysequence.nextval 
  INTO some_variable
FROM dual;

然后在insert语句中使用some_variable中的值。

答案 1 :(得分:0)

您可以创建“before insert”触发器,该触发器使用序列中的下一个值填充rowstamp列。我自己并不喜欢这种策略,但是一种选择。

有一个如何执行此操作的示例here