首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将服务器变量作为SqlDataSource参数传递给sharepoint dataformwebpart?

如何将服务器变量作为SqlDataSource参数传递给sharepoint dataformwebpart?
EN

Stack Overflow用户
提问于 2011-11-16 01:14:40
回答 2查看 1.8K关注 0票数 2

我试图通过sharepoint的DataFormWebPart通过传递当前登录的sharepoint用户名(本质上是一个服务器变量)来执行存储过程,但是,我在如何传递服务器变量的问题上遇到了困难。

下面是我的代码

代码语言:javascript
复制
<asp:SqlDataSource runat="server" ProviderName="System.Data.SqlClient" ID="SqlDataSource7" SelectCommandType="StoredProcedure" ConnectionString="xxx;" SelectCommand="xxx" __designer:customcommand="true">
    <SelectParameters>
         <!-- Not sure what to do here -->
    </SelectParameters>
</asp:SqlDataSource>

我知道我想做像这样的事情

代码语言:javascript
复制
<ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>

但似乎我只能使用asp参数标记...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-26 00:37:17

迟到总比不到好:)

我在2010年工作,但我想它在2007年也应该可以工作:

  1. 将相应的服务器变量绑定到您的DVWP:

...

  • 现在您可以将此参数推送到数据源:

...

现在在SqlDataSource参数@Context :中有了当前的IIS用户(即DOMAIN\ user )

票数 1
EN

Stack Overflow用户

发布于 2011-11-16 13:24:21

我认为你永远不应该在你的页面中使用sqldatasource。

试试这条路

  1. 首先,我们将创建一个类库。在这个类库中,我们将创建不同的类文件来提高可重用性。

1.1添加类库(To go File -> New Project -> Add ClassLibrary)

  1. 现在我们将创建db连接类

2.1将类文件添加到类lib项目中,作为‘’Classbll‘

代码语言:javascript
复制
 public class DBConnection
{
    #region"private variables"

    private string _sConnectionString = ConfigurationManager.AppSettings["DBConnectString"].ToString();
    private static string _sErrorMessage = string.Empty;
    #endregion

    #region "Public Properties"

    public string DataConnectionString
    {
        get
        {
            return _sConnectionString;
        }
    }
    public string ErrorMessage
    {
        get
        {
            return _sErrorMessage;
        }
        set
        {
            _sErrorMessage = value;
        }
    }

    #endregion

}

2.2在主项目的web.config中定义连接字符串

代码语言:javascript
复制
<appSettings>
    <add key="DBConnectString" value="SERVER=XYZSERVER;UID=XXYY;Password=ZZZXXX;Database=DBXXYYZZ;"/>

</appSettings>

3现在在同一类库项目中创建另一个类文件。

假设文件名为“FillCommon.cs”

代码语言:javascript
复制
    using System.Data.SqlClient;
using Microsoft.ApplicationBlocks.Data;
using System.Data;
using System.Web.UI.WebControls;

namespace Clssbll
{
    public class FillCommon : DBConnection
    {


        #region "Private variables"
        private string _smRoleMasterRoleID;

        #endregion
        #region "Public variables"

        public string mRoleMasterRoleID
        {
            get { return _smRoleMasterRoleID; }
            set { _smRoleMasterRoleID = value; }
        }

        #endregion

        #region "Public Methods"

        public DataSet GetmRoleMaster_infoSingle()
        {

            try
            {
                DataSet oDS = new DataSet();
                SqlParameter[] oParam = new SqlParameter[1];

                oParam[0] = new SqlParameter("@m_RoleID", _smRoleMasterRoleID);


                oDS = SqlHelper.ExecuteDataset( DataConnectionString, CommandType.StoredProcedure, "SelectmRoleMaster", oParam);
                return oDS;
            }
            catch (Exception e)
            {
                ErrorMessage = e.Message;
                return null;
            }
        }

  1. 现在将Classbll(类库)添加到主项目引用或bin中。
  2. 在主项目类文件中,您可以在需要的任何位置使用此名称空间

如果你觉得有用,请标记为你的答案,否则让我知道…

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8140327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档