Sql server 从CRM Dynamics 2011插件连接到SQL

Sql server 从CRM Dynamics 2011插件连接到SQL,sql-server,sql-server-2008-r2,dynamics-crm-2011,dynamics-crm,dynamics-crm-4,Sql Server,Sql Server 2008 R2,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm 4,大家好,我之前发布了一个问题,关于如何设置要起草的活动合同,但在做研究时,我发现可以直接进入SQL进行更新,也可以复制合同然后进行更新。我不得不选择第一种。我试图访问我的数据库并更新表,但是从插件中得到一个SQL通用错误。我从插件访问数据库的代码(我通常使用实体框架进行连接): 当我从插件连接到数据库时,还有什么需要考虑的吗?提前感谢。SetStateRequest消息不是设置状态和状态的适当方式吗?还是我遗漏了什么?我不确定这是否为时已晚,但您可以创建一个SSIS包,将CRM数据存储到SQL表

大家好,我之前发布了一个问题,关于如何设置要起草的活动合同,但在做研究时,我发现可以直接进入SQL进行更新,也可以复制合同然后进行更新。我不得不选择第一种。我试图访问我的数据库并更新表,但是从插件中得到一个SQL通用错误。我从插件访问数据库的代码(我通常使用实体框架进行连接):


当我从插件连接到数据库时,还有什么需要考虑的吗?提前感谢。

SetStateRequest消息不是设置状态和状态的适当方式吗?还是我遗漏了什么?

我不确定这是否为时已晚,但您可以创建一个SSIS包,将CRM数据存储到SQL表中。创建一个简单的插件,用于创建或更新此SSIS包的Fire


您必须在无隔离模式下运行此插件,因为沙盒隔离将不允许文件访问(包)。

不知道这是否是您错误的原因(您没有发布错误消息),但是您的筛选器上缺少单引号:
where contract='ACC70D43-DEBA-E111-8610-00155D041E80'
是的,这就是原因,非常感谢……没问题。现在您的问题已经解决,您可以用解决方案回答您的问题(稍后,接受该答案)您知道这是大量不受支持的,对吗?嗨,詹姆斯,是的,我知道这是不受支持的,但这是必需的,我必须在合同激活时更新合同,两种方法是直接进入SQL并将其设置为draft,或者复制合同(成为draft),然后对其进行更新。我必须选择oprion one并进入SQL,因为另一种方式不能满足客户的业务需求,因此我必须这样做……嗨,Mike,是的,理想情况下,这个消息可以(并且应该)用于设置实体的状态。然而,合同一旦被激活,就不能再变为草稿,所以我必须做一个解决办法,我知道这是不理想的(不支持)……我唯一考虑的是一个“使用”块来实现可拆分的对象,比如Sql连接。
string strConn = "Data Source=serverName;Initial Catalog=DatabaseName;IntegratedSecurity=SSPI";

SqlConnection connection = new SqlConnection();
SqlCommand command = new SqlCommand();
connection.ConnectionString = strConn;
connection.Open();
command.Connection = connection;
command.CommandText = "Update ContractBase set StateCode = 0,StatusCode = 1 "
  + "where ContractId = ACC70D43-DEBA-E111-8610-00155D041E80";
command.ExecuteNonQuery();
connection.Close();