سلام.
در محیط ویژوال استودیو رفرنس های زیر رو اضافه کنید :
برای اضافه کردن یک Reference بر روی پوشه Reference پروژتون کلیک راست کنید و از گزینه Add Reference استفاده کنید اگر در پنجره Add Reference بصورت پیش فرض ظاهر نشدن از قسمت جستجوی پنجره، چند کلمه از رفرنس ها رو تایپ کنید تا نمایش داده بشن و بعد اقدام به انتخاب اونها کنید :
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.Management.Sdk.Sfc
حالا در بالای فرمتون، فضای نام های زیر رو اضافه کنید :
using System.IO;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
در کد زیر فرض بر این هست که فایل script درون همان درایوی هست که برنامه شما(فایل exe از اونجا اجرا میشه (مهم نیست فایل script کنار فایل exe باشه یا نه، مهم اینه فایل exe و فایل script درون یک درایو باشن). این حالتی که میگم فایل اسکریپ و فایل exe درون یک درایو باشه برای حالتی هست که setup درست میکنید و میدید دست مشتری وگرنه برای تست کردن مجبور نیستید اینطوری باشه و فقط کافیه آدرس فایل اسکریپت رو در کد زیر جایگزین کنید.
SqlConnection con = new SqlConnection("server = .\\sqlexpress;database = master;integrated security = true");
FileInfo file = new FileInfo(string.Format("{0}:\\script.sql",System.I O.Directory.GetCurrentDirectory().Substring(0,1))) ;
string script = file.OpenText().ReadToEnd();
file.OpenText().Close();
Server myserver = new Server(new ServerConnection(con));
myserver.ConnectionContext.ExecuteNonQuery(script) ;
MessageBox.Show("اسکریپت با موفقیت اجرا شد");
نکته مهم : اگر با خطای Mixed Mode assembly is built aginst … مواجه شدید، درون فایل app.config برید و تگ شروع statrtup رو بصورت زیر تغییر بدید :
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>