2010-12-03 52 views
0

我是VB.net的新手。我需要修改连接到Oracle数据库的现有应用程序。使用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,其由序列生成的I收到错误?

请指教。

Regards, Radu。

回答

0

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

 
SELECT mysequence.nextval 
    INTO some_variable 
FROM dual; 

然后使用从some_variable值在你的INSERT语句。

+0

我知道这一点。但我需要vb.net代码来使用序列在表中插入值。 – 2010-12-03 11:27:24

0

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

有一个例子如何做到这一点here