我正在尝试为SharePoint 2010构建一个“可视化Web部件”,它应该连接到Oracle表并在SharePoint页面上显示记录。对于开发,Oracle 11g客户端(使用ODP.net),SharePoint Server 2010,Visual Studio 2010和Oracle 10g Express都在我的机器上运行。
首先,我在ASP.NET Web应用程序中编写了示例代码,以连接我的本地Oracle表并在网格视图中显示数据,并且工作正常。我的代码是,
OracleConnection con;
try
{
// Connect
string constr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));User Id=SYSTEM; Password=password";
con = new OracleConnection(constr);
//Open database connection
con.Open();
// Execute a SQL SELECT
OracleCommand cmd = new OracleCommand("select * from T_ACTIONPOINTS WHERE AP_STATUS='Active' ", con);
OracleDataReader dr = cmd.ExecuteReader();
GridView.DataSource = dr;
GridView.DataBind();
GridView.AllowPaging = true;
}
catch (Exception e)
{
lblError.Text = e.Message;
}
现在,我正在尝试创建新的“SharePoint”可视化Web部件项目,并使用相同的代码并将其部署在本地SP服务器上。但是当它运行时,我会收到以下错误
这是我的解决方案资源管理器,
兼容性看起来有些不对劲。有人指出我正确的方向吗?
答案 0 :(得分:0)
你有Oracle.DataAccess.dll
吗?您需要将它放在sharepoint Web应用程序的bin目录中。
或者,您必须在Web部件中引用它作为参考。确保此DLL包含在您的解决方案包中。
答案 1 :(得分:0)
在Visual Studio 2010中,默认情况下,引用并不总是包含在解决方案包中。所以只是因为它在项目引用中,并不一定意味着它会使服务器之旅。要检查您的DLL是否在解决方案包中:
如果您的DLL未在“程序集”部分中列出,请执行以下步骤: