2014-09-27 62 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

相关问题