.NET调用osql.exe执行sql脚本创建表和存储过程

简介: 文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/using System;using System.Diagnostics;using System.
文章出处: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
    }
}

复制代码
 
 
 

目录
相关文章
|
2月前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
110 10
|
26天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
118 3
|
1月前
|
SQL 关系型数据库 MySQL
|
9天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
20 0
|
26天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:实现过程与关键细节解析an3.021-6232.com
随着互联网技术的快速发展,ASP.NET作为一种广泛使用的服务器端开发技术,其与数据库的交互操作成为了应用开发中的重要环节。本文将详细介绍在ASP.NET中如何连接SQL数据库,包括连接的基本概念、实现步骤、关键代码示例以及常见问题的解决方案。由于篇幅限制,本文不能保证达到完整的2000字,但会确保
|
3月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
63 2
|
3月前
|
存储 SQL Go
全网最长的sql server巡检脚本分享(1000行)
全网最长的sql server巡检脚本分享(1000行)
50 1
|
3月前
|
测试技术 C# 开发者
“代码守护者:详解WPF开发中的单元测试策略与实践——从选择测试框架到编写模拟对象,全方位保障你的应用程序质量”
【8月更文挑战第31天】单元测试是确保软件质量的关键实践,尤其在复杂的WPF应用中更为重要。通过为每个小模块编写独立测试用例,可以验证代码的功能正确性并在早期发现错误。本文将介绍如何在WPF项目中引入单元测试,并通过具体示例演示其实施过程。首先选择合适的测试框架如NUnit或xUnit.net,并利用Moq模拟框架隔离外部依赖。接着,通过一个简单的WPF应用程序示例,展示如何模拟`IUserRepository`接口并验证`MainViewModel`加载用户数据的正确性。这有助于确保代码质量和未来的重构与扩展。
67 0
|
3月前
|
SQL 存储 Go
SQL Server一键巡检脚本分享
SQL Server一键巡检脚本分享
26 0
|
3月前
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?