【发布时间】:2014-07-04 20:42:14
【问题描述】:
对于一些集成测试,我想连接到数据库并运行一个 .sql 文件,该文件具有测试实际运行所需的架构,包括 GO 语句。如何执行 .sql 文件? (或者这完全是错误的方式?)
我发现a post in the MSDN forum 显示此代码:
using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True";
FileInfo file = new FileInfo("C:\\myscript.sql");
string script = file.OpenText().ReadToEnd();
SqlConnection conn = new SqlConnection(sqlConnectionString);
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.ExecuteNonQuery(script);
}
}
}
但在最后一行我收到此错误:
System.Reflection.TargetInvocationException: 异常已被 调用的目标。 ---> System.TypeInitializationException: '' 的类型初始化器 抛出异常。 ---> .ModuleLoadException: C++ 模块加载失败 应用域初始化。 ---> System.DllNotFoundException:无法 加载 DLL 'MSVCR80.dll':指定 找不到模块。 (例外 来自 HRESULT:0x8007007E)。
有人告诉我从某个地方下载那个 DLL,但这听起来很 hacky。有更清洁的方法吗?还有另一种方法吗?我做错了什么?
我正在使用 Visual Studio 2008、SQL Server 2008、.Net 3.5SP1 和 C# 3.0 进行此操作。
【问题讨论】:
标签: c# sql sql-server sql-server-2008