zoukankan      html  css  js  c++  java
  • .NET调用osql.exe执行sql脚本创建表和存储过程

    文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

    using System;
    using System.Diagnostics;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                //参数
                string[] args = new string[5];
                args[0] = "-U " + txtUserName.Text; //用户名
                args[1] = "-P " + txtPassword.Text; //用户密码
                args[2] = "-S " + txtServer.Text; //服务器
                args[3] = "-d " + txtDatabase.Text; //数据库
                args[4] = "-i " + AppDomain.CurrentDomain.BaseDirectory + "Install.sql"//sql脚本路径

                
    //执行
                textBox1.Text = CommandLine("osql.exe", args);
            }

            #region 调用命令行工具

            /// <summary>
            
    /// 调用命令行工具
            
    /// </summary>
            
    /// <param name="name">命令行工具名称</param>
            
    /// <param name="args">可选命令行参数</param>
            
    /// <remarks>注意:所有命令行工具都必须保存于system32文件夹中</remarks>
            
    /// <returns></returns>
            private string CommandLine(string name, params string[] args)
            {
                return CommandLine(name, "", args);
            }

            /// <summary>
            
    /// 调用命令行工具
            
    /// </summary>
            
    /// <param name="name">命令行工具名称</param>
            
    /// <param name="workingDirectory">设置工作目录</param>
            
    /// <param name="args">可选命令行参数</param>
            
    /// <remarks>注意:所有命令行工具都必须保存于system32文件夹中</remarks>
            
    /// <returns></returns>
            private string CommandLine(string name, string workingDirectory, params string[] args)
            {
                string returnValue = "";

                using (Process commandline = new Process())
                {
                    try
                    {
                        commandline.StartInfo.UseShellExecute = false;
                        commandline.StartInfo.CreateNoWindow = true;
                        commandline.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                        commandline.StartInfo.RedirectStandardOutput = true;
                        commandline.StartInfo.FileName = name;
                        commandline.StartInfo.WorkingDirectory = workingDirectory;
                        //添加命令行参数
                        if (args.Length > 0) commandline.StartInfo.Arguments = string.Join(" ", args);
                        commandline.Start();
                        commandline.WaitForExit();
                        returnValue = commandline.StandardOutput.ReadToEnd();
                        commandline.Close();
                    }
                    catch
                    {
                        commandline.Dispose();
                        throw;
                    }
                }

                return returnValue;
            }

            #endregion
        }
    }

    复制代码
     
     
     

  • 相关阅读:
    常用控件的学习
    C# NOSQL 开源项目
    Js生成Guid
    通过sql语句附加数据库与启用sa账户
    Js 键值对实现
    sqlServer2000 安装备忘
    System.Reflection.ReflectionTypeLoadException: 无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。
    关于ado.net连接池的一些分享(2)(原文出自:http://www.cnblogs.com/b42259626/articles/968460.html)
    关于ado.net连接池的一些分享(原文出自:http://www.cnblogs.com/rickie/archive/2004/10/02/48546.aspx)
    删除迅雷文件夹
  • 原文地址:https://www.cnblogs.com/51net/p/2390443.html
Copyright © 2011-2022 走看看