C#控制台程序实现开启、关闭SQLServer服务的代码分享

用了近一天的时间研究了C#如何开启SqlServer数据库的服务,起先应用的是C#自带的System.ServiceProcess.ServiceContorller类,但个人认为它在win7下效果不佳,或许由于个人系统问题,最终决定放弃去选择应用C#的system.diagnostice.process.start方法执行cmd指令,下面我示范开启SqlServer最具代表的两个服务mssqlserver与mssqlserveragent,下面是本人练习写的控制台下的代码,经由多次测试均可成功

代码如下:

using System;
using System.Collections.Generic;
using System.Management;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            while (1 == 1)
            {
                Console.Write('\n\n 可选操作 : \n\n 1.启动数据库服务 2.停止数据库服务 \n\n 开始执行 : ');
                string strQueryState = Console.ReadLine();
                if (strQueryState.Trim() == '1')
                {
                    string strFilePath = GetFilePath('Start');
                    System.IO.File.AppendAllText(strFilePath, GetCmdStr('start'), System.Text.Encoding.GetEncoding('gb2312'));
                    System.Diagnostics.Process.Start(strFilePath);
                }
                else if (strQueryState.Trim() == '2')
                {
                    string strFilePath = GetFilePath('Stop');
                    System.IO.File.AppendAllText(strFilePath, GetCmdStr('stop'), System.Text.Encoding.GetEncoding('gb2312'));
                    System.Diagnostics.Process.Start(strFilePath);
                }
            }

}

/// <summary>
        /// 操作所需的Cmd指令
        /// </summary>
        /// <param name='StateStr'>操作</param>
        /// <returns>Cmd指令</returns>
        private static string GetCmdStr(string StateStr)
        {
            string cmdStr = '';
            if (StateStr.ToLower().Trim() == 'start')
            {
                cmdStr = @'@echo. & del %0 & @echo off & @echo.正在启动服务 MSSQLSERVER and MSSQLSERVERAGENT ...... & '
                        + '@echo. & @net start MSSQLSERVER & @net start SQLSERVERAGENT & @echo.服务启动完毕!';
            }
            else if (StateStr.ToLower().Trim() == 'stop')
            {
                cmdStr = @'@echo. & del %0 & @echo off & @echo.正在停止服务 MSSQLSERVER and MSSQLSERVERAGENT ...... & '
                        + '@echo. & @net stop sqlserveragent &  @net stop mssqlserver & @echo.服务停止完毕!';
            }
            return cmdStr;
        }

/// <summary>
        /// 获取一个文件是否存在于磁盘
        /// </summary>
        /// <param name='PathStr'>文件名称</param>
        /// <returns>返回可创建文件路径</returns>
        private static string GetFilePath(string strFileName)
        {
            string strTem = '';//用于存储要保存文件路径
            string[] strPath = new string[] {@'C:\\',@'D:\\',@'E:\\',@'F:\\'};//检测的盘符
            strFileName += DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString()
                + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString().Trim()+'.cmd';//为防止重复为文件重新命名

foreach (string pathStr in strPath)//循环判断文件目录存在性
            {
                if (!System.IO.Directory.Exists(pathStr))//判断目录存在
                {
                    continue;
                }
                else
                {
                    if (System.IO.File.Exists(pathStr + strFileName))//判断文件存在
                    {
                        continue;
                    }
                    else
                    {
                        strTem = pathStr + strFileName;
                        break;
                    }
                }
            }
            return strTem;//返回可建文件路径
        }
    }
}

(0)

相关推荐

  • C#如何实现对sql server数据库的增删改查

    一个专门实现sql server数据库的增删改查,以及将查询的结果返回成表格等功能,分享代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient;//第一步:引用与sql相关的命名空间 using System.Data;//引用表的命名空间 //行注释 ///段落注释 /// <summary> ///第二步: 把

  • C#访问SqlServer设置链接超时的方法

    本文实例讲述了C#访问SqlServer设置链接超时的方法.分享给大家供大家参考.具体实现方法如下: 下面这段代码设置超时时间为60秒,默认为30秒 using (connection) { SqlCommand sqlcommand = connection.CreateCommand(); sqlcommand.CommandTimeout = 60; //默认时间为 30 秒 sqlcommand.CommandText = sqlText; ... 希望本文所述对大家的C#程序设计有所帮

  • C#实现异步连接Sql Server数据库的方法

    本文实例讲述了C#实现异步连接Sql Server数据库的方法.分享给大家供大家参考.具体分析如下: .net最新版提供了await方法,可以使我们可以很容易实现到数据库的异步连接 复制代码 代码如下: readonly string ConnectionString = "Data Source=database_server_name;Initial Catalog=Store;Integrated Security=True"; protected async void Exec

  • C#查询SqlServer数据库并返回单个值的方法

    本文实例讲述了C#查询SqlServer数据库并返回单个值的方法.分享给大家供大家参考.具体实现方法如下: static public string GetSqlAsString(string sqlText, SqlParameter[] sqlParameters, string databaseConnectionString) { string result = ""; SqlDataReader reader; SqlConnection connection = new S

  • C#连接到sql server2008数据库的实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: namespace MyFirstApp { class Program { static void Main(string[] args) { SqlConnection conn = null; SqlCommand comm = null; SqlDataReader sdreader = null; try { string ConStr = "server=192.168.1.110;uid=sa;pwd=woaifr0828;da

  • C#更新SQLServer中TimeStamp字段(时间戳)的方法

    本文实例讲述了C#更新SQLServer中TimeStamp字段(时间戳)的方法.分享给大家供大家参考.具体实现方法如下: public partial class Form1 : Form { private SqlConnection mCnn = null; private long TimeStampValue; public Form1() { InitializeComponent(); mCnn = new SqlConnection(); mCnn.ConnectionStrin

  • c#操作sql server2008 的界面实例代码

    先是查询整张表,用到combobox选择查询哪张表,最后用DataGridView显示 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsForms

  • SQL Server中调用C#类中的方法实例(使用.NET程序集)

    需求是这样的,我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解密,由于我在.net里加密的方式比较特殊,在delphi程序里解密比较繁琐且要消耗很多时间,所以不得不让sqlserver调用程序集的方式来解决问题. 下面只是一个例子,贴出来共享. 建立一个dll,class,代码如下: 复制代码 代码如下: namespace MyDll {     public partial class MyClass     {

  • C#控制台程序实现开启、关闭SQLServer服务的代码分享

    用了近一天的时间研究了C#如何开启SqlServer数据库的服务,起先应用的是C#自带的System.ServiceProcess.ServiceContorller类,但个人认为它在win7下效果不佳,或许由于个人系统问题,最终决定放弃去选择应用C#的system.diagnostice.process.start方法执行cmd指令,下面我示范开启SqlServer最具代表的两个服务mssqlserver与mssqlserveragent,下面是本人练习写的控制台下的代码,经由多次测试均可成功

  • 微信小程序支付功能 php后台对接完整代码分享

    微信小程序支付,php后台对接完整代码,全是干货呀,拿过来可以直接使用.小程序在调起微信支付之前需要5个参数,这时候就需要携带code向后台请求,然后后台根据code获取openid 再进行服务器之间的. 一.准备工作 1.小程序注册,要以公司的以身份去注册一个小程序,才有微信支付权限: 2.绑定商户号. 3.在小程序填写合法域  二.完成以上条件,你可以得到      小程序appid 小程序秘钥    这两个用于获取用户openid: 商户号id ,商户号秘钥     支付接口必须的: 三.

  • SQLSERVER服务手工启动 批处理文件

    不比2000有个 开关的程序 所以上网找了下教程 自己写个批处理 自动启动服务 哇哈哈 突然觉得 只要有网络 语言不是啥大的障碍 写起来都差不多呀 哇哈哈 话说最近又加了个ORACLE的服务 依然偷懒 把原先的改改用吧 哈哈 就成这样了 复制代码 代码如下: @echo off echo 开启SQLSERVER服务按1 echo 关闭SQLSERVER服务按2 echo 开启ORACLE服务按3 echo 关闭ORACLE服务按4 set /p ans= if %ans%==1 goto sts

  • C#控制台程序如何发布到服务器Linux上运行

    目录 1.创建控制台程序 2.创建TCP服务端程序 3.利用vs发布程序 4.Ubuntu服务器安装.Net环境 5.解压运行tcp服务端程序 6.服务器后台运行程序 总结 1.创建控制台程序 如上图所示,选择linux开发平台,我用的VS2019,.Net5.0,一直点下一步,创建. 2.创建TCP服务端程序 using LinuxTcpApp.TcpServer; using System; using System.Net; namespace LinuxTcpApp { class Pr

  • Oracle11g RAC开启关闭、设置归档小结

    关闭 1.先关数据库: 复制代码 代码如下: [oracle@oeltan1 ~]$ srvctl stop database -d tantest 2.再关闭crs服务 [ 复制代码 代码如下: root@oeltan1 ~]# crsctl stop crs 启动: 复制代码 代码如下: [root@oeltan1 ~]# crsctl start crs [oracle@oeltan1 ~]$srvctl start asm -n node_name 上述开机一般已经启动 复制代码 代码如

  • 微信小程序 require机制详解及实例代码

    微信小程序 require机制详解 一, JS模块加载:一次性加载全部JS, 但并不一定立即执行. 先提一提微信小程序架构: 类浏览器 -> HTTP本地服务 -> 云端服务 微信小程序运行的架构,基本上是浏览器 -> HTTP本地服务 -> 云端服务, HTTP本地服务用来读取本地文件或者代理云端的文件资源.读取项目中JS文件, 是由HTTP本地服务取本地存储的脚本文件. 似乎比较简单,一个HTML 引用所有JS文件 既然采用了这种架构,那微信小程序就类似浏览器那样,借助一个HT

  • 远程开启/关闭目标telnet服务的windows脚本RTCS.vbs

    ******************************************************************************** RTCS v1.10 Remote Telnet Configure Script, by zzzEVAzzz Welcome to visite www.isgrey.com Usage: cscript c:\scriptpath\RTCS.vbe targetIP username password NTLMAuthor teln

  • vc控制台程序关闭事件时的处理方式及注意点详解

    百度可以找到很多关于这个问题解决的方法 关键控制台API函数:SetConsoleCtrlHandler 在支持C++ 11以上的编译器中,你可以这么做. SetConsoleCtrlHandler([](DWORD fdwctrltype)->BOOL { if (fdwctrltype == CTRL_CLOSE_EVENT) { // 你的善后代码... return TRUE; } return FALSE; }, TRUE); 最初这么做是很舒服的,但之后发现了问题: Windows控

  • 三种开启重启远程终端服务的方法第1/2页

    如果服务器中的终端服务没有启用或被意外停止,而又恰好急需使用该服务进行远程管理服务器,惟一的办法就是重新启用该服务.为了能让大家更好地利用该服务远程管理服务器,本文特意从本地和远端这两个角度出发,来向各位详细介绍启用远程终端服务的不同方法. 修改属性法 这种方法其实就是对终端服务的系统属性进行修改,让其启动类型从"已禁用"状态修改成"自动"状态,具体操作步骤为: 依次单击"开始" "运行",运行命令"services

  • 在.NET Core控制台程序中如何使用依赖注入详解

    背景介绍 Dependency Injection:又称依赖注入,简称DI.在以前的开发方式中,层与层之间.类与类之间都是通过new一个对方的实例进行相互调用,这样在开发过程中有一个好处,可以清晰的知道在使用哪个具体的实现.随着软件体积越来越庞大,逻辑越来越复杂,当需要更换实现方式,或者依赖第三方系统的某些接口时,这种相互之间持有具体实现的方式不再合适.为了应对这种情况,就要采用契约式编程:相互之间依赖于规定好的契约(接口),不依赖于具体的实现.这样带来的好处是相互之间的依赖变得非常简单,又称松

随机推荐