2010-10-08 44 views
0

我需要從數據庫插入數據到另一個數據庫。我從VB.NET運行此查詢:從VB.NET訪問查詢 - 插入數據雖然他們是NULL

例如:

Insert into DBDestino.tablaDest (campo1,campo2) 
select valor1,valor2 
from DBOrigen.tablaOrigen 

字段 「campo1」 是整數(DBdestino)

但有時值 「valor1」(在DBOrigen)爲NULL。如果我運行先前的查詢,它會返回錯誤並且不會插入任何數據。

如何通過「valor1」插入數據有時爲NULL?

回答

0

我懷疑你的問題是由於valor1中的空值,除非campo1字段拒絕空值。

您需要一個Access數據庫引擎將接受的INSERT語句。例如,這一說法與DBDestino.mdb打開Access執行:

INSERT INTO tablaDest (campo1, campo2) 
SELECT valor1, valor2 
FROM tablaOrigen IN 'C:\Access\DBOrigen.mdb'; 

我不精通VB.Net,但我認爲你可以打開一個DBDestino.mdb連接,然後執行相同的INSERT聲明在Access中工作。

Imports System.Data.OleDb 
Module Module1 
    Dim cn As OleDbConnection 
    Dim cmd As OleDbCommand 
    Dim icount As Integer 
    Dim strInsert As String 
    Sub Main() 
     cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
           "Data Source=C:\Access\DBDestino.mdb;") 
     cn.Open() 
     strInsert = "INSERT INTO tablaDest (campo1, campo2) " & _ 
      "SELECT valor1, valor2 " & _ 
      "FROM tablaOrigen IN 'C:\Access\DBOrigen.mdb';" 
     cmd = New OleDbCommand(strInsert, cn) 
     icount = cmd.ExecuteNonQuery 
     Debug.Print(icount) 
     cn.Close() 
    End Sub 
End Module 

我測試了一下我的系統上,並從tablaOrigen值成功插入到tablaDest,包含空值。