讓C#程序批量直接執行sql腳本文件


讓C#程序直接執行sql腳本文件,類似SSMS直接打開sql文件並執行一樣,需要借用mssql的幾個類庫及命名空間:

 

vs2010在引用里無法找到這兩個類庫,那我們就想辦法找到它,首先我電腦安裝了mssqlserver2008 ,

我去X:\Program Files\Microsoft SQL Server\100\SDK\Assemblies 找到

Microsoft.SqlServer.ConnectionInfo.dll

Microsoft.SqlServer.Smo.dll

Microsoft.SqlServer.Management.Sdk.Sfc.dll(這個一定要考到你的程序目錄,但你可以不引用)

然后手動添加應用,第三個dll一定要引用,不然會報錯

方法代碼如下(傳入的sql內容可以從SQL腳本文件直接通過文件流的方式直接讀出來,語句有GO也兼容):

public static bool ExceSQL(string sql, string constr,ref string logtxt)
        {
            bool isBuild = false;
            logtxt = "ExceSQL Finished,sql count:0.";
            try
            {
               // string connectonstring = "data source=10.1.8.188;initial catalog=WAPPDB;user id=sa;password=mindray99!";
                SqlConnection conn = new SqlConnection(constr);
                Microsoft.SqlServer.Management.Smo.Server server = new Server(new ServerConnection(conn));
                int i = server.ConnectionContext.ExecuteNonQuery(sql);
                if (i > 0)
                {
                    isBuild = true;
                    logtxt = "ExceSQL Success,sql count:" + (0 - i).ToString()+".";
                }
            }
            catch (Exception ex)
            {
                logtxt = "ExceSQL Failed - " + ex.Message;
                Logs.Error("ExceSQL Failed - " + ex.Message);
            }
            return isBuild;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM