Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. run SQL server scripts from inside a C# code

run SQL server scripts from inside a C# code

Scheduled Pinned Locked Moved C#
csharpdatabasesql-serversysadminhelp
13 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Sabry1905

    Hello All i am wondering how to call a batch of SQL server scripts from inside a C# code Thanx for your help

    E Offline
    E Offline
    Eslam Afifi
    wrote on last edited by
    #4

    You can use the SqlConnection and SqlCommand in the System.Data.SqlClient namespace. Or you can use the ServerConnection in the Microsoft.SqlServer.Management.Common namespace (reference the Microsoft.SqlServer.ConnectionInfo assembly).

    Eslam Afifi

    1 Reply Last reply
    0
    • S Sabry1905

      Hello All i am wondering how to call a batch of SQL server scripts from inside a C# code Thanx for your help

      H Offline
      H Offline
      Harvey Saayman
      wrote on last edited by
      #5

      i wrote a program a while back to run all my sql scripts for me, and its FORCES the db to drop connections aswell(this is for dev purposes only) it uses SQLCMD.exe, and you need sql2005 for that... heres the code if your interested

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Diagnostics;
      using System.Threading;
      using System.IO;
      using Microsoft.SqlServer.Management.Smo;
      using Microsoft.SqlServer.Management.Smo.Wmi;
      using Microsoft.SqlServer.Management.Common;

      namespace CreateDB
      {
      public class Program
      {
      public static string database;
      public static string userName;
      public static string password;

          static void Main(string\[\] args)
          {
              getVariables();
      
              FileStream fs = new FileStream(@"C:\\scripts.txt", FileMode.Open, FileAccess.Read);
              StreamReader sr = new StreamReader(fs);
      
              killDatabase();
      
              string line = sr.ReadLine();
              while (line != null)
              {
                  ProcessStartInfo StartInfo = new ProcessStartInfo("sqlcmd", "-S " + database + " -d master" + " -U " + userName + " -P " + password + " -i " + line);
                  Process myProcess = new Process();
      
                  StartInfo.UseShellExecute = false;
                  StartInfo.RedirectStandardOutput = true;
      
                  myProcess.StartInfo = StartInfo;
                  myProcess.Start();
      
                  Console.Write("Started Process --> ");
                  myProcess.WaitForExit();
      
                  StreamReader outputReader = myProcess.StandardOutput;
                  Console.WriteLine("Finnished Process ---> output:" + "\\r\\n");
                  Console.WriteLine(outputReader.ReadToEnd());
      
                  Console.WriteLine();
                  Console.WriteLine("|------------------------------------------------------------------------------|");
                  Console.WriteLine();
      
                  line = sr.ReadLine();
              }
              Console.ForegroundColor = ConsoleColor.Green;
              Console.WriteLine("DDDD      OOOO    N    N  EEEEEE  ");
              Console.WriteLine("D   D    O    O   NN   N  E       ");
              Console.WriteLine("D    D  O      O  N N  N  EEE     ");
              Console.WriteLine("D    D  O      O  N  N N  EEE     ");
              Console.WriteLine("D   D    O    O   N   NN  E       ");
              Console.WriteLine("DDDD      OOOO    N    N  EEEEEE  ");
              C
      
      S 1 Reply Last reply
      0
      • G Giorgi Dalakishvili

        You can use SqlCommand class to execute commands against sql database.

        Giorgi Dalakishvili #region signature my articles #endregion

        H Offline
        H Offline
        Harvey Saayman
        wrote on last edited by
        #6

        i tried that when i wrote the 1st version of my "execute SQL scripts" app, it didn't work, although i thought i would :doh: check my other post to see what i ended up doing

        Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

        G 1 Reply Last reply
        0
        • H Harvey Saayman

          i tried that when i wrote the 1st version of my "execute SQL scripts" app, it didn't work, although i thought i would :doh: check my other post to see what i ended up doing

          Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

          G Offline
          G Offline
          Giorgi Dalakishvili
          wrote on last edited by
          #7

          Thanks for the info.

          Giorgi Dalakishvili #region signature my articles #endregion

          H 1 Reply Last reply
          0
          • G Giorgi Dalakishvili

            Thanks for the info.

            Giorgi Dalakishvili #region signature my articles #endregion

            H Offline
            H Offline
            Harvey Saayman
            wrote on last edited by
            #8

            your welcome :)

            Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

            1 Reply Last reply
            0
            • H Harvey Saayman

              i wrote a program a while back to run all my sql scripts for me, and its FORCES the db to drop connections aswell(this is for dev purposes only) it uses SQLCMD.exe, and you need sql2005 for that... heres the code if your interested

              using System;
              using System.Collections.Generic;
              using System.Linq;
              using System.Text;
              using System.Diagnostics;
              using System.Threading;
              using System.IO;
              using Microsoft.SqlServer.Management.Smo;
              using Microsoft.SqlServer.Management.Smo.Wmi;
              using Microsoft.SqlServer.Management.Common;

              namespace CreateDB
              {
              public class Program
              {
              public static string database;
              public static string userName;
              public static string password;

                  static void Main(string\[\] args)
                  {
                      getVariables();
              
                      FileStream fs = new FileStream(@"C:\\scripts.txt", FileMode.Open, FileAccess.Read);
                      StreamReader sr = new StreamReader(fs);
              
                      killDatabase();
              
                      string line = sr.ReadLine();
                      while (line != null)
                      {
                          ProcessStartInfo StartInfo = new ProcessStartInfo("sqlcmd", "-S " + database + " -d master" + " -U " + userName + " -P " + password + " -i " + line);
                          Process myProcess = new Process();
              
                          StartInfo.UseShellExecute = false;
                          StartInfo.RedirectStandardOutput = true;
              
                          myProcess.StartInfo = StartInfo;
                          myProcess.Start();
              
                          Console.Write("Started Process --> ");
                          myProcess.WaitForExit();
              
                          StreamReader outputReader = myProcess.StandardOutput;
                          Console.WriteLine("Finnished Process ---> output:" + "\\r\\n");
                          Console.WriteLine(outputReader.ReadToEnd());
              
                          Console.WriteLine();
                          Console.WriteLine("|------------------------------------------------------------------------------|");
                          Console.WriteLine();
              
                          line = sr.ReadLine();
                      }
                      Console.ForegroundColor = ConsoleColor.Green;
                      Console.WriteLine("DDDD      OOOO    N    N  EEEEEE  ");
                      Console.WriteLine("D   D    O    O   NN   N  E       ");
                      Console.WriteLine("D    D  O      O  N N  N  EEE     ");
                      Console.WriteLine("D    D  O      O  N  N N  EEE     ");
                      Console.WriteLine("D   D    O    O   N   NN  E       ");
                      Console.WriteLine("DDDD      OOOO    N    N  EEEEEE  ");
                      C
              
              S Offline
              S Offline
              Sabry1905
              wrote on last edited by
              #9

              Thanks Harvey, this is exactly what i was looking for.

              H 1 Reply Last reply
              0
              • S Sabry1905

                Thanks Harvey, this is exactly what i was looking for.

                H Offline
                H Offline
                Harvey Saayman
                wrote on last edited by
                #10

                Glad to help bud, let me know if you have any troubles with it

                Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                S 1 Reply Last reply
                0
                • H Harvey Saayman

                  Glad to help bud, let me know if you have any troubles with it

                  Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                  S Offline
                  S Offline
                  Sabry1905
                  wrote on last edited by
                  #11

                  i have an issue in running my script for each line in the script i got this a message like this Started Process --> Sqlcmd: ')': Invalid filename. Finnished Process ---> output: !!!

                  H 1 Reply Last reply
                  0
                  • S Sabry1905

                    i have an issue in running my script for each line in the script i got this a message like this Started Process --> Sqlcmd: ')': Invalid filename. Finnished Process ---> output: !!!

                    H Offline
                    H Offline
                    Harvey Saayman
                    wrote on last edited by
                    #12

                    can you post what you have in scripts.txt... and is that file located on the C:\ drive?

                    Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                    S 1 Reply Last reply
                    0
                    • H Harvey Saayman

                      can you post what you have in scripts.txt... and is that file located on the C:\ drive?

                      Harvey Saayman - South Africa Junior Developer .Net, C#, SQL you.suck = (you.Passion != Programming & you.Occupation == jobTitles.Programmer) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                      S Offline
                      S Offline
                      Sabry1905
                      wrote on last edited by
                      #13

                      i had sent you the script through mail, yes the script lie on the C:\ partition

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups