有谁知道如何将(sql)数据库中的值返回到MSBuild脚本?我希望将值放入属性中,以便将其传递给后续构建任务。
我正在摆弄类似下面的内容,但是返回-1表示查询已成功执行,而我想要的是查询的实际结果。 (来自社区任务的SqlExecute)。
<SqlExecute Command="select count(*) from dbo.trade"
ConnectionString="XXXX" >
<Output PropertyName="TradeCount" TaskParameter="Result" />
</SqlExecute>
<Message Text="$(TradeCount)" />
答案 0 :(得分:1)
罗布,
好的想法。在反射器中打开社区任务会发现SqlExecute任务永远不会返回查询的值。this._result = command.ExecuteNonQuery();
这让我回到尝试使用oSql和Exec任务...
<Exec Command="osql -n -S $(DatabaseMachineName) -E -q "select count(*) from trade" -b -d $(DatabaseName)">
<Output PropertyName="TradeCount" TaskParameter="Outputs"/>
</Exec>
<Message Text="Result:$(TradeCount)" />
答案 1 :(得分:0)
您是否尝试过“select * from dbo.trade”? 根据msbuild communitytasks文档,Result返回给定语句的行数,而您的语句可能返回包含计数的单行。
答案 2 :(得分:0)
尝试“select * from dbo.trade”,仍然给出相同的-1。
社区任务文档说输出“输出返回计数/值”,但它没有进一步说明如何使用它。
答案 3 :(得分:0)
通常最简单的方法是在Reflector中打开社区任务或直接检查代码库以查看它的使用方式。