0

我有两个独立的数据库,我想从中检索数据并在一个网格视图中显示。我遇到的困难是我只有一个数据库中的表中有一个产品密钥,并且与另一个数据库中的实际产品产品相同的产品密钥集,现在我想在一个网格视图中显示产品数据.. ..如果这是有道理的。

我该如何做到这一点,合并数据并将产品数据再次显示在一个网格中的键上。

string connString = "Data Source=.\\SQLEXPRESS;Initial Catalog=LRVWebsite;user ID=sa;password=lrmg;";
SqlConnection sqlCon;
OleDbConnection conn;

DataSet setOleDb;
DataSet dsSql;
private void bindData()
{
    try
    {
        conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;
                                Data Source =" + Server.MapPath("App_Data\\LR Product Database 2000.mdb"));
        conn.Open();

        setOleDb = new DataSet();
        OleDbDataAdapter dbaOle = new OleDbDataAdapter("SELECT * FROM tblProducts", conn);

        dbaOle.Fill(setOleDb);
        sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["LRVWebsite"].ToString());
        sqlCon.Open();
        dsSql = new DataSet();

        SqlDataAdapter dba = new SqlDataAdapter(@"SELECT C.CustomerFirstName,C.CustomerLastName, C.CustomerCompany,C.CustomerPosition,C.CustomerCountry,C.CustomerProvince,C.CustomerContact,CP.ActionDate,CP.ProductCode,CP.CustomerEmail FROM tblCustomers C INNER JOIN tblCustomerProducts CP ON C.CustomerEmail = CP.CustomerEmail ORDER BY ActionDate DESC", connString);
        //@"SELECT C.CustomerFirstName,C.CustomerLastName,C.CustomerCompany,C.CustomerPosition,C.CustomerCountry,C.CustomerProvince,C.CustomerContact,CP.ActionDate,CP.ProductCode,CP.CustomerEmail FROM tblCustomers C INNER JOIN tblCustomerProducts CP ON C.CustomerEmail = CP.CustomerEmail ORDER BY ActionDate DESC", connString);
        dba.Fill(dsSql);

        dsSql.Merge(setOleDb);

        GridView1.DataSource = dsSql;
        GridView1.DataBind();


        sqlCon.Close();

这是我尝试过的。现在,我怎样才能让产品密钥与包含相同产品密钥的另一个表中的实际产品相关联?

4

2 回答 2

0

我认为这是一个普遍面临的情况。这是来自msdn的详细链接。

合并数据集内容

于 2013-01-15T07:19:25.873 回答
0

据我了解,您在一个数据库中有 2 个表,在另一个数据库中有一个表,您希望将所有这些数据集组合在一起并将其显示为一个。

如果我是正确的,那么您可以跨数据库进行连接;

select * from dbo.firstdatabasetable db1
inner join apple.primarykeys db2
on db2.primary = db1.primary
inner join orange.seconddatabase db3
on db2.productname = db3.productname

如果数据库托管在网络上的不同机器上,那么您可以找到数据库服务器select sys.servers

假设第一个服务器是 x,第二个服务器是 y

然后;

select * from x.dbo.firstdatabasetable db1
inner join x.dbo.primarykeys db2
on db2.primary = db1.primary
inner join y.dbo.seconddatabase db3
on db2.productname = db3.productname
inner join x.dbo.primarykeys
于 2013-01-16T03:06:45.190 回答