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

    代码
    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
        }
    }

  • 相关阅读:
    Java对象的生命周期与作用域的讨论(转)
    [置顶] Oracle学习路线与方法
    Java实现 蓝桥杯 算法训练 未名湖边的烦恼
    Java实现 蓝桥杯 算法训练 未名湖边的烦恼
    Java实现 蓝桥杯 算法训练 未名湖边的烦恼
    Java实现 蓝桥杯 算法训练 最大的算式
    Java实现 蓝桥杯 算法训练 最大的算式
    Java实现 蓝桥杯 算法训练 最大的算式
    Java实现 蓝桥杯 算法训练 最大的算式
    Java实现 蓝桥杯 算法训练 最大的算式
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1773952.html
Copyright © 2011-2022 走看看