.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
}
}
.NET调用osql.exe执行sql脚本创建表和存储过程的更多相关文章
- [转]使用C#调用cmd来执行sql脚本
本文转自:https://blog.csdn.net/tvmerp/article/details/1822669 下面是使用C#调用cmd来执行osql实现脚本的执行. using System; ...
- 新建数据库,然后使用SQL语句创建表、存储过程、用户说明
需要在数据库的安全性,用户那里为用户设置一下权限
- Inno Setup执行SQL脚本的方法
作为和NSIS并立的.两个最流行的免费Windows应用程序安装包制作工具之一,Inno在学习难度上相对要低一些,非常适合对一些简单的桌面程序打包.但对于较复杂的安装过程,或者Web应用程序来说,我个 ...
- java 执行sql脚本的3种方式 (ant,ibatis,ScriptRunner)
package com.unmi; import java.io.*; import org.apache.tools.ant.*; import org.apache.tools.ant.taskd ...
- mysql执行sql脚本
最近用mysql执行sql脚本,遇到一些问题,顺便记录一下笔记. 首先,先开启mysql服务,创建一个空数据库(脚本里没有创建数据库) 执行脚本有两个方法 1.未连接数据库:在Windows下使用cm ...
- .net(C#)在Access数据库中执行sql脚本
自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...
- 使用命令执行 sql 脚本文件
使用命令执行 sql 脚本文件 方法: 在 Windows 下使用 cmd 命令执行(或 Unix 或 Linux 控制台下)[Mysql的bin目录]\mysql –u用户名 –p密码 –D数据库名 ...
- InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法
简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...
- Delphi 7 在程序中直接执行SQL脚本文件
Delphi 7 在程序中直接执行SQL脚本文件 在处理MSDE一些操作中.需要执行一些SQL脚本.有的是从SQLServer 2000中生成的SQL为后缀的脚本.在MSDE中没有企业管理器,操作都是 ...
随机推荐
- ConcurrentHashMap 原理分析
1 为什么有ConcurrentHashMap hashmap是非线程安全的,hashtable是线程安全的,但是所有的写和读方法都有synchronized,所以同一时间只有一个线程可以持有对象,多 ...
- [WebStrom] Change default cmd to Cygwin
GO to setting, search Terminal: Change shell path : C:\cygwin\bin\bash.exe --login -i (to the loc ...
- hdu 1180 诡异的楼梯 (bfs)
诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Sub ...
- 再回首,Java温故知新(八):Java基础之字符串
字符串是Java中使用频率最高的类,但是它却不属于基本类型,而是预定义了String类来表示.从String类的源码可以看到,String是基于char[]实现的,而且Java中的String是不可变 ...
- POJ 1330 Nearest Common Ancestors(LCA模板)
给定一棵树求任意两个节点的公共祖先 tarjan离线求LCA思想是,先把所有的查询保存起来,然后dfs一遍树的时候在判断.如果当前节点是要求的两个节点当中的一个,那么再判断另外一个是否已经访问过,如果 ...
- leetcode修炼之路——350. Intersection of Two Arrays II
题目如下: Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2 ...
- [置顶] VS自带工具:dumpbin的使用
有时候我们想查看一个exe引用了哪些动态库,或者我们想看某个动态库包含哪些接口函数,这个时候可以使用dumpbin.exe工具: 1.输入Dumpbin -imports calldll.exe查看它 ...
- oracle批量转库工作,比较快捷的方式
select 'create table ' || t.TABLE_NAME || ' as select * from ODS_ZMGLXT.'|| t.TABLE_NAME ||'; ' fr ...
- 全文索引--自定义chinese_lexer词典
全文索引它的数据字典本来就是自己加密过的数据格式,只有翻译过来了,才可以修改.这样修改后再生成它自己的数据格式文件,覆盖掉原来的,就会将新添加的关键词加入进去了!! 以下操作是在Oracle服务器安装 ...
- Java 取整
向上取整用Math.ceil(double a) 向下取整用Math.floor(double a) 举例: public static void main(String[] args) throws ...