如何执行使用多个数据库的查询

时间:2011-09-15 06:40:21

标签: c# asp.net sqlconnection

我正在开发一个ASP.Net网站。我必须执行一个从两个不同数据库中获取数据的查询。

我有两个用于这些连接的SqlConnection对象。

我打开了两个连接。但是在SqlCommand对象中,我只能指定一个SqlConnection对象。

     SqlConnection conn = new SqlConnection("Data Source=xxx;Initial Catalog=xxx1;User ID=web_writeonly;Password=aaa;Network Library=DBMSSOCN");
     SqlConnection conn1 = new SqlConnection("Data Source=xxx;Initial Catalog=xxx2;User ID=randomUser;Password=bbb;Network Library=DBMSSOCN");

       conn.open();

       conn1.open();

       SqlCommand cmdUserInfo = new SqlCommand("<query goes here>", conn);
    cmdUserInfo.Parameters.Add("@ifa", SqlDbType.NVarChar).Value = ifacode;
    SqlDataAdapter sdaUserInfo = new SqlDataAdapter(cmdUserInfo);
    sdaUserInfo.Fill(dtSummaryTbl);

    conn.Close();
    conn1.Close();

当我执行此代码段时,出现错误“对象' * ',数据库'xxx2',架构'dbo'上的SELECT权限被拒绝。”

请帮我解决这个问题。

谢谢!

2 个答案:

答案 0 :(得分:0)

该错误意味着您没有足够的权限...检查您的网站与哪个sql登录相关联,然后检查您尝试从中选择数据的表的权限。

此外,经过仔细检查,您的一个用户名是“web_ writeonly ”...如果您正在尝试进行选择,请提供一些提示! ;)

答案 1 :(得分:0)

假设您的数据库位于同一台服务器上,为什么不能将SQL放入其中一个数据库的存储过程中。我很确定你可以只使用一个连接对象并执行从两个数据库获取数据的存储过程。