Для некоторых тестов интеграции я хочу подключиться к базе данных и запустить файл .sql, который имеет схему, необходимую для фактического запуска тестов, включая инструкции GO. Как я могу выполнить файл .sql? (или это совсем не тот путь?)
Я нашел сообщение в форуме MSDN, показывая этот код:
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: Модуль С++ не загружался во время Инициализация приложения. --- > System.DllNotFoundException: невозможно выполнить загрузить DLL 'MSVCR80.dll': указанный модуль не найден. (Исключение от HRESULT: 0x8007007E).
Мне сказали пойти и скачать эту DLL откуда-то, но это звучит очень хаки. Есть ли более чистый способ? Есть ли другой способ сделать это? Что я делаю неправильно?
Я делаю это с Visual Studio 2008, SQL Server 2008,.Net 3.5SP1 и С# 3.0.