0

我是 VB.net 的新手。我需要修改连接到 Oracle 数据库的现有应用程序。

我的问题是:如何插入由 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,它是由序列生成的?

请指教。

问候,拉杜。

4

2 回答 2

0

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

选择 mysequence.nextval
  INTO some_variable
从双;

然后在您的插入语句中使用 some_variable 中的值。

于 2010-12-03T10:12:46.747 回答
0

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

这里有一个如何做到这一点的例子

于 2010-12-05T23:00:53.973 回答