我需要将数据从DB插入另一个DB。我从VB.NET运行这个查询:
例如:
Insert into DBDestino.tablaDest (campo1,campo2)
select valor1,valor2
from DBOrigen.tablaOrigen
字段“ campo1 ”是整数(在DBdestino中)
但有时值“ valor1 ”(在DBOrigen中)为NULL。如果我运行上一个查询,它将返回错误,并且不会插入任何数据。
如何插入数据虽然“ valor1 ”有时会为NULL?
答案 0 :(得分:0)
我怀疑你的问题是由于valor1中的Null值,除非campo1字段拒绝Null。
您需要一个Access'数据库引擎将接受的INSERT语句。例如,在Access中使用DBDestino.mdb执行此语句打开:
INSERT INTO tablaDest ( campo1, campo2 )
SELECT valor1, valor2
FROM tablaOrigen IN 'C:\Access\DBOrigen.mdb';
我不熟悉VB.Net,但我认为您可以打开与DBDestino.mdb的连接,然后执行在Access中工作的相同INSERT语句。
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中,包括Nulls。