SharePoint【学习笔记】--【Sandbox Solution】-- Full Trust Proxy--开发实例之(2、在Webpart中访问Full Trust Proxy)...

上一篇

我们在Sharepoint的Farm Solution中创建,部署并注册了一个能访问数据库的Full trust Proxy,这一篇我们将在Sharepoint的Sandbox Solution中创建一个Webpart,并通过前面创建的Full trust proxy访问数据库,把访问结果显示在我们创建的Webpart中。
进入操作步骤。
一、创建和设置项目
  1、打开VS2010,创建一个空项目Empty SharePoint Project,命名为MyTestSandBoxAccessDBWebPart,如下

  

  此项目为Sandbox类型的


  2、在Solution Explorer中,右击References目录,选择Add reference,在跳出的Add Reference窗口,选择Browse栏,浏览到你部署的Full trust Proxy类所在目录
C:\Windows\assembly\GAC_MSIL\My.Sharepoint.SandBox

进入对应的版本


选择My.Sharepoin.SandBox.dll类

引用成功后,可以双击此类,看到它里面定义的对应内容

 

二、创建Webpart并调用Full Trust Proxy
1、在Solution Explorer中,右击项目,选择Add,添加New Item,选择Webpart(注意:不能选择添加Visual Web Part),并命名为TestSandboxSolutionAccessDataBaseWebPart

 
2、在Solution Explorer中,双击TestDBWebpart.webpart,编辑内容如下:

此处我们设置了它的Title和Description.

3、右击Feature1,重命名为DataBaseWebPart,
 

然后双击DataBaseWebPart,打开Feature Designer,在此窗口中设置如下图


 

4、修改TestDBWebpart.cs代码如下:

复制代码
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;

using Microsoft.SharePoint.UserCode;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Utilities;
using System.Data;
using My.Sharepoint.SandBox;

namespace MyTestSandBoxAccessDBWebPart.TestDBWebpart
{
    [ToolboxItemAttribute(
false)]
    
public class TestDBWebpart : WebPart
    {
        
private TextBox txtDBConnection = new TextBox() { Text = @"Data Source=Data Source=serverDB;Initial Catalog=MyDb;User ID=MyApp;Password=mypwd" };
        
private TextBox txtSQLCommand = new TextBox() { Text = @"SELECT TOP(100)* FROM dbo.myTable" };

        
private Label results = new Label();
        
private Label lblFileContent = new Label() { Text = "Input DBConnectionStr :" };
        
private Label lblFileName = new Label() { Text = "Input SQL Command :" };

        
private Button btnAccessDatabase = new Button() { Text = "Access Database" };
        
private GridView gv = new GridView();

        
public TestDBWebpart()
        {
            
#region  ProxyOne

            
string assemblyName = "My.Sharepoint.SandBox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f460c3b7a15fdf1";
            
string typeName = "My.Sharepoint.SandBox.MyTestSandBoxAccessDBInfo.TestProxyCode.SQLProxyExecute";

            
try
            {
                btnAccessDatabase.Click 
+= (object sender, EventArgs e) =>
                {
                    
string DBConnectionString = txtDBConnection.Text.ToString().Trim();
                    
string SQLCommandStr = txtSQLCommand.Text.ToString().Trim();

                    DataTable dt 
= ((DataSet)SPUtility.ExecuteRegisteredProxyOperation(assemblyName, typeName,
                        
new My.Sharepoint.SandBox.MyTestSandBoxAccessDBInfo.TestProxyCode.SQLProxyArgs(DBConnectionString, SQLCommandStr))).Tables[0];
                    gv.DataSource 
= dt;
                    gv.DataBind();
                };
            }
            
catch (Exception ex)
            {
                results.Text 
= ex.ToString();
            }
            
#endregion

        }

        
protected override void CreateChildControls()
        {
            Table layoutTable 
= new Table();

            
#region Create Table
            
//Input File Content Row
            layoutTable.Rows.Add(new TableRow());
            layoutTable.Rows[
0].Cells.Add(new TableCell());
            layoutTable.Rows[
0].Cells.Add(new TableCell());

            
//Input File Location Row
            layoutTable.Rows.Add(new TableRow());
            layoutTable.Rows[
1].Cells.Add(new TableCell());
            layoutTable.Rows[
1].Cells.Add(new TableCell());

            
//Create File button Row
            layoutTable.Rows.Add(new TableRow());
            layoutTable.Rows[
2].Cells.Add(new TableCell() { ColumnSpan = 2 });

            
//Show Result Row
            layoutTable.Rows.Add(new TableRow());
            layoutTable.Rows[
3].Cells.Add(new TableCell() { ColumnSpan = 2 });

            txtDBConnection.Width 
= 400;
            txtSQLCommand.Width 
= 400;

            layoutTable.Rows[
0].Cells[0].Controls.Add(lblFileContent);
            layoutTable.Rows[
0].Cells[1].Controls.Add(txtDBConnection);

            layoutTable.Rows[
1].Cells[0].Controls.Add(lblFileName);
            layoutTable.Rows[
1].Cells[1].Controls.Add(txtSQLCommand);

            layoutTable.Rows[
2].Cells[0].Controls.Add(btnAccessDatabase);
            layoutTable.Rows[
3].Cells[0].Controls.Add(results);

            
#endregion

            
this.Controls.Add(layoutTable);
            
this.Controls.Add(gv);
            
base.CreateChildControls();
        }


        
protected override void RenderContents(HtmlTextWriter writer)
        {
            
base.RenderContents(writer);
        }
    }
}
复制代码

 在上面的代码中,如何取得Assembly Name中的相应值,可参见此文 :

Sharepoint学习笔记--- 快速确定VisualStudio2010当前Project的assembly name

 在此Webpart中,我们创建了两个TextBox,一个用于输入数据库连接字符串,一个用于输入SQL语句。同时还定义了一个按钮,并Attach了此按钮的Click事件,当点击此按钮后,后台代码会通过取得的参数,传递给Full Trust Proxy类,通过Full Trust Proxy类去访问数据库内容,然后把取得的结果传递回来,显示在Webpart上的GridView控件中。

 

三、部署并使用Webpart呈现DataBase数据库数据
 Build并部署此项目。成功后,在测试Sharepoint网站上创建一个Web Part Page,在此Page上加入部署的Webpart,然后在此Webpart的相应Text框中输入相应内容再点击Access Database按钮

可看到结果


转载:http://www.cnblogs.com/wsdj-ITtech/archive/2011/09/16/2177820.html

转载于:https://www.cnblogs.com/greeny/archive/2013/02/20/2919455.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值