Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MSBuld中使用SQL_C#_Sql_Visual Studio 2010_Msbuild - Fatal编程技术网

C# 在MSBuld中使用SQL

C# 在MSBuld中使用SQL,c#,sql,visual-studio-2010,msbuild,C#,Sql,Visual Studio 2010,Msbuild,我不熟悉编写MSBuild脚本,我已经使用VS2010编写了一个基本脚本,它将基本的“Hello World”输出到控制台上。但是,我在VS2010和Eclipse中使用java c#和c++有多年的经验。我希望基本上有一个脚本,使用SQL调用连接到数据库,然后有查询,在我连接到的数据库和我导入的EXCEL表之间进行检查。这在MSBUILD中是可能的吗?甚至可以将excel工作表导入脚本以编写查询吗?我需要最终将这个脚本放在一个网页中,这样我就不能从我所知的范围内访问VS2010数据库工具。我不

我不熟悉编写MSBuild脚本,我已经使用VS2010编写了一个基本脚本,它将基本的“Hello World”输出到控制台上。但是,我在VS2010和Eclipse中使用java c#和c++有多年的经验。我希望基本上有一个脚本,使用SQL调用连接到数据库,然后有查询,在我连接到的数据库和我导入的EXCEL表之间进行检查。这在MSBUILD中是可能的吗?甚至可以将excel工作表导入脚本以编写查询吗?我需要最终将这个脚本放在一个网页中,这样我就不能从我所知的范围内访问VS2010数据库工具。我不确定是应该使用其他程序还是继续使用MSBUILD

我一直在网上阅读,遇到了一些选择,但我无法得到一个明确的答案,那就是我最好的选择是编写一个连接到SQL数据库的脚本

编辑:在脚本中,我将把数据库连接放在哪里?这种连接会类似于java吗

  ConnectionManager cm;
  System.Data.SqlClient.SqlConnection sqlConn;
  System.Data.SqlClient.SqlCommand sqlComm;

  cm = Dts.Connections["conectionManager1"];

  sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction);
  sqlComm = new System.Data.SqlClient.SqlCommand("your SQL Command", sqlConn);
  sqlComm.ExecuteNonQuery();

  cm.ReleaseConnection(sqlConn);
如果“脚本”是指MSBuild任务,则具有用于读取和写入SQL Server的任务

我不知道它是否有Excel任务,但它有WMI任务,您应该能够使用这些任务控制Excel。如果您已经有了.NET代码来执行所需的任何操作,则可以使用为MSBuild创建自己的.NET任务

在回答有关将数据库连接字符串放置在何处的问题时,约定是在MSBuild文件
PropertyGroup
中创建一个属性,例如

<PropertyGroup>
    ...
    <YourConnectionString>Data Source=whatever, ...</YourConnectionString>
</PropertyGroup>

...
数据源=无论什么。。。
您可以使用以下语法在MSBuild任务中使用这些属性:

<TaskName TaskConnectionStringAttribute="$(YourConnectionString)" />


不知道您的确切用例/问题。。。但也许看看T4?从你的要求来看,这似乎很合适。。。您可以执行所需的所有excel/DB调用等操作,并由T4动态生成脚本。我非常确定MSBUILD XMLs只是基本脚本(特定于构建和部署),没有像DB适配器这样的高级编程支持!因此,我的建议是使用T4模板(即C#)构建一个动态XML-它非常接近asp.net HTML呈现-eval标记与模板文本混合。内联任务中+1。我相信这将非常适合用户的场景。