Visual studio 2010 sharepoint2010:沙盒web部件中的数据库连接

Visual studio 2010 sharepoint2010:沙盒web部件中的数据库连接,visual-studio-2010,sharepoint-2010,database-connection,Visual Studio 2010,Sharepoint 2010,Database Connection,我想在沙盒web部件中建立数据库连接。当我使用查询时,下面的代码可以正常工作。有人能告诉我如何使用存储过程并向其传递参数吗?还有,如何使用web服务 public static DataSet ChkConn(string strval) { public static DataSet ds; public static string assemblyName = "FullTrustProxy, Version=1.0.0.0,

我想在沙盒web部件中建立数据库连接。当我使用查询时,下面的代码可以正常工作。有人能告诉我如何使用存储过程并向其传递参数吗?还有,如何使用web服务

    public static DataSet ChkConn(string strval)
    {
        public static DataSet ds;        
        public static string assemblyName = "FullTrustProxy, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=75e25e9dc5ff21aa";
        public static string typeName = "DBFullTrust.FullTrustProxy.SQLFullTrustProxy";

        try
        {
            SQLProxyArgs proxyArgs = new SQLProxyArgs();
            proxyArgs.ConnectionString = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Cat;Data Source=ABC";
            if (strval == "B")
                proxyArgs.Command = "select * from table1";
            else
                proxyArgs.Command = "select * from table2";


            proxyArgs.returnType = typeof(DataSet);
            return ds = (DataSet)SPUtility.ExecuteRegisteredProxyOperation(assemblyName, typeName, proxyArgs);                 
        }
        catch
        {

        }
        return ds;
    }

您需要更改完全信任代理操作

像这样的东西来进行辩论

使用(SqlCommand cmd=newsqlcommand(args.Command,conn)){
command.CommandType=CommandType.storedProcess;
foreach(参数中的KeyValuePair参数){
cmd.Parameters.AddWithValue(para.Key,para.Value);
}
返回cmd.ExecuteNonQuery();
}
并使用此命令调用代理:

SqlDataReaderProxyArgs args=newsqldatareaderproxyargs();
args.ConnectionString=“数据源=;初始目录=;用户ID=;密码=;
args.Command=“从系统索引中选择*”;
args.CommandType=CommandType.Text;
Add(newkeyValuePair(){Key=“Id”,Value=“1”});
string assemblyName=typeof(SqlDataReaderProxyOperation).Assembly.FullName;
字符串typeName=typeof(SqlDataReaderProxyOperation).FullName;
对象结果=SPUtility.ExecuteRegisteredProxyOperation(assemblyName、typeName、args);
using (SqlCommand cmd = new SqlCommand(args.Command, conn)) {
    command.CommandType = CommandType.StoredProcedure;
    foreach (KeyValuePair<string, object> para in args.Parameters) {
        cmd.Parameters.AddWithValue(para.Key, para.Value);
    }
    return cmd.ExecuteNonQuery();
}
SqlDataReaderProxyArgs args = new SqlDataReaderProxyArgs();
args.ConnectionString = "Data Source=;Initial Catalog=;User ID=;Password=";
args.Command = "select * from sys.indexes";
args.CommandType = CommandType.Text;
args.Parameters.Add(new KeyValuePair<string, object>() { Key = "Id", Value = "1"});
string assemblyName = typeof(SqlDataReaderProxyOperation).Assembly.FullName;
string typeName = typeof(SqlDataReaderProxyOperation).FullName;
object result = SPUtility.ExecuteRegisteredProxyOperation(assemblyName, typeName, args);