2014-09-27 61 views
0

嗨,大家好我有2個數據庫我正在使用。 數據庫編號1有一些數據需要寫入基數2 由於安全考慮,數據庫位於2個不同的服務器上,因此它決定創建一個Windows窗體應用程序與2個數據庫進行交互。Visual Basic dotnet將相同的數據寫入2個不同的數據庫

數據庫結構如下

數據庫名稱=數1 表名稱= A,B,C,d,E

數據庫名稱=數2 表名稱= W,X,Y ,Z

目前,我可以從我的文本框將數據寫入數據編號爲1的表,但我不能有相同的數據寫入到數據庫中的號碼2

回答

0

表假設你不能或者不想去追求these options,並且只是想在你的winforms應用程序的不同服務器上的兩個數據庫之間進行切換,這個代碼片段就是一個很好的例子。

Imports System.Data.SqlClient 

Public Sub ReadWriteDB1(sqlStatement) 
    WriteData("Server=server1;Database=database1;User Id=sa;Password=pwd;", sqlStatement) 
End Sub 

Public Sub ReadWriteDB2(sqlStatement) 
    WriteData("Server=server2;Database=database2;User Id=sa;Password=pwd;", sqlStatement) 
End Sub 

Private Sub WriteData(connectionString As String, sqlStatement As String) 
    Dim cn As New SqlConnection(connectionString) 
    Dim cmd As New SqlCommand(sqlStatement, cn) 
    cn.Open() 
    cmd.ExecuteNonQuery() 
End Sub 
+0

1.兩個數據庫都有不同的結構,但數據類型相同,需要填充的列是相同的。例如在DB number1表中,A1數據類型設置爲在DB number2表中相同的varchar(50),X2設置爲varchar(50)。數據庫中的兩個表都是平面文件。所以邏輯上它應該工作,但它不,我可以通過電子郵件我的代碼任何人審查它,讓我知道我去哪裏錯了謝謝 – 2014-10-02 01:06:40

0

如果db1正確保存數據,我敢打賭這不是應用程序問題 - 而是db2的一些問題。嘗試檢查以下內容:

  1. 檢查兩個數據庫(或試圖寫入的表)是否具有相同的結構?
  2. 檢查您連接到db2的用戶是否有權寫入?
  3. 如果您使用普通的sql查詢,可以寫入db2嗎?嘗試發出幾個插入查詢與來自真實應用的結構和數據。您可以使用像SQL Server Profiler這樣的工具來捕獲一些查詢,然後將它們重新發布到db2。
  4. 您已經提到了有關更改表名的問題。這兩個數據庫之間的架構差異如何?可能需要將整個(前綴)表名從dbo.A更改爲sth.W,而不是簡單地將A更換爲W,查詢中
  5. 我對您試圖存儲的數據一無所知,但它可能是外鍵問題。確保兩個數據庫都同步了「字典表」 - 但這種問題應由ADO.NET在異常消息中報告。

如果上述失敗,我們需要一些代碼負責持久性。

+0

1.兩個DB有一個不同的結構。但數據類型是相同的列需要填充的都是一樣的。例如在DB number1表中,A1數據類型設置爲在DB number2表中相同的varchar(50),X2設置爲varchar(50)。數據庫中的兩個表都是平面文件。所以邏輯上它應該工作,但它不我可以通過電子郵件我的代碼任何人審查它,讓我知道我去哪裏錯了謝謝 – 2014-10-02 01:06:56

相關問題