Webpart中用DataGrid绑定SQL数据? [downmoon原作]

78 篇文章 0 订阅
17 篇文章 0 订阅

自写了一个WebPart 用DataRead列出数据,准备
部署在SharePoint服务器上,想想很容易,一路顺利,可是将导入的WebPart拽到页面时,出来这个错误:

An Error has occurred: Request for the permission of type System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.

看来WebPart访问SQL有问题:
于是。在WSS的webConfig文件中添加下列两行:

< SafeControl Assembly = " System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 "  Namespace = " System.Data.SqlClient "  TypeName = " * "  Safe = " True "   />
   
< SafeControl Assembly = " System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 "  Namespace = " System.Data "  TypeName = " * "  Safe = " True "   />

 

 

还是不行,
又在C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/60/config/wss_minimaltrust.config文件中添加下面一行:

 

   < SecurityClass Name = " SqlClientPermission "  Description = " System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " />

 

 

服务器 iisreset后 还是不行!
这可怪了! 再到服务器上一看,原来数据库采用Windows身份验证模式,而不是混合验证模式

于是,再次将服务器上的ASPNET帐号户设置为所有数据库访问权

还是不行
怀疑是.net运行权限不够
再次在服务器中"信任程序集",将服务器上的System.dll的程序集权限设主完全信任!
还是不行!我晕

再捍源码中连接串如下:
"Data Source=sp-hgh;Initial Catalog=NorthWind;uid-sa;pwd=;"
马上改为:
"Data Source=sp-hgh;Initial Catalog=NorthWind;Integrated Security=SSPI;Trusted_Connection=yes;"

结果还是出不来数据
唉!整个一郁闷

最后捍了XGP的文章《[url=http://xgp1226.blogdriver.com/xgp1226/598244.html]Web部件访问SQL数据库--寻找收获的快乐[/url]》一文,深受启发,又参考MSDN文档,终于成功!
方法:

  然后在wss_minimaltrust.config文件(在Webconfig文件中查找文件的位置)的<SecurityClass>节点中加入子节点:

< SecurityClass Name = " SqlClientPermission "  Description = " System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " />
 
 
< SecurityClass Name = " SharePointPermission "  Description = " Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c " />


     
       再在ASP.net(注意必须)的<PermissionSet>节点中加入子节点:

 

 

                              < IPermission
                                    
class = " SqlClientPermission "
                                    version
= " 1 "
                                    Unrestricted
= " true "
                            
/>
                             
< IPermission  class = " SharePointPermission "
                                    version
= " 1 "
                                    ObjectModel
= " True "
                            
/>

 

 

再重启IIS
iisreset 后, 一切OK!

我的源码如下:

using  System;
using  System.ComponentModel;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Xml.Serialization;
using  Microsoft.SharePoint;
using  Microsoft.SharePoint.Utilities;
using  Microsoft.SharePoint.WebPartPages;
using  System.Data;
using  System.Data.SqlClient;
namespace  NewDispData
{
 
///   <summary>
 
///  Description for WebPart1.
 
///   </summary>

 [DefaultProperty( " Text " ),
  ToolboxData(
" <{0}:WebPart1 runat=server></{0}:WebPart1> " ),
  XmlRoot(Namespace
= " NewDispData " )]
 
public   class  NewDispData : Microsoft.SharePoint.WebPartPages.WebPart // ,ICellConsumer // ,IRowProvider
  {

  
webPart变量

     
创建子控件
  
///   <summary>
  
///  Render this Web Part to the output parameter specified.
  
///   </summary>
  
///   <param name="output">  The HTML writer to write out to  </param>

   protected   override   void  RenderWebPart(HtmlTextWriter output)
  
{
   
// output.Write(SPEncode.HtmlEncode(Text));
    EnsureChildControls();
   
if  (ErrorLabel.Visible  ==   true )
   
{
    ErrorLabel.RenderControl(output);
    
return ;
   }

   
// If connected then display a heading and the grid.
    if  (_connectionCount  >   0 )
   
{   
    output.RenderBeginTag(
" div " );
    output.Write(
" <br> " );
    output.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, 
" bold " );
    output.RenderBeginTag(HtmlTextWriterTag.Span);
/// /    output.Write(" <nobr>  Orders for Customer ID: "
/// /     + System.Web.HttpUtility.HtmlEncode(CustomerId) +  " </nobr> ");

    output.RenderEndTag();  // span
    output.Write( " <br> " );
    output.Write(
" <br> " );
    OrdersGrid.RenderControl(output);
    output.RenderEndTag(); 
// div
   }

   
if (_connectionCount  >   0 )
   
{
    output.RenderBeginTag(
" div " );
    output.Write(
" <br> " );
    output.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, 
" bold " );
    output.AddStyleAttribute(HtmlTextWriterStyle.Color, 
" #000000 " );
    output.RenderBeginTag(HtmlTextWriterTag.Span);
/// /    output.Write(" <nobr>  Orders for Customer ID: "
/// /     + System.Web.HttpUtility.HtmlEncode(CustomerId));
/// /    output.Write("  </nobr> ");

    output.RenderEndTag();  // span
    BindGrid();
    OrdersGrid.RenderControl(output);
    output.RenderEndTag(); 
// div
   }


 }

}

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值