C#关于 SQL Server 数据库的操作

2023-11-01

C# :创建SQL Server数据库、设置SQL Server数据库为只读状态、修改和压缩SQL Server数据库、新建(删除和修改)数据表、修改(新增和删除)数据列

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
using  System.Data.SqlClient;
using  System.Collections;
using  System.Net;
using  System.IO;
using  System.Threading;
namespace  WindowsApplication1
{
    
public   partial   class  Form1 : Form
    {
        
public  Form1()
        {
            InitializeComponent();
        }

        
private   void  InitializeComponent()
        {
            
throw   new  NotImplementedException();
        }
        
private   void  button1_Click( object  sender, EventArgs e)
        {
// 创建SQL Server数据库
             string  MySQL  =   " use master; "   +
            
" IF DB_ID(N'MyDatabase') IS NOT NULL  "   +
            
" DROP DATABASE MyDatabase; "   +
            
" CREATE DATABASE MyDatabase  "   +
            
" ON(NAME=MyDatabase_dat,FILENAME=\ " C:\\MyDatabase.mdf\ " ,SIZE=5,MAXSIZE=10,FILEGROWTH=1)  "   +
            
" LOG ON(NAME=MyDatabase_log,FILENAME=\ " C:\\MyDatabase.ldf\ " ,SIZE=2,MAXSIZE=5,FILEGROWTH=1) " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source=.;Initial Catalog=;Integrated Security=True " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功创建数据库 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button2_Click( object  sender, EventArgs e)
        {
// 设置SQL Server数据库为只读状态
             string  MySQL  =   " use master;  "   +
                  
" IF DB_ID(N'MyDatabase') IS NOT NULL  "   +
                
" EXEC sp_dboption 'MyDatabase', 'read only', 'TRUE' " ;
            
//  "EXEC sp_dboption 'MyDatabase', 'read only', 'FALSE'";
            SqlConnection MyConnection  =   new  SqlConnection( " Data Source=.;Initial Catalog=;Integrated Security=True " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 设置MyDatabase数据库为只读状态操作成功! " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button3_Click( object  sender, EventArgs e)
        {
// 设置SQL Server数据库为脱机状态
             string  MySQL  =   " use master;  "   +
                  
" IF DB_ID(N'MyDatabase') IS NOT NULL  "   +
                
" EXEC sp_dboption 'MyDatabase', 'offline', 'TRUE' " ;
            
//    "EXEC sp_dboption 'MyDatabase', 'offline', 'false'";
            SqlConnection MyConnection  =   new  SqlConnection( " Data Source=.;Initial Catalog=;Integrated Security=True " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 设置MyDatabase数据库为脱机状态操作成功! " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button5_Click( object  sender, EventArgs e)
        {
// 压缩SQL Server数据库
             string  MySQL  =   " use master; "   +
            
" IF DB_ID(N'MyDatabase') IS NOT NULL  "   +
            
" DBCC SHRINKDATABASE (MyDatabase, 90)  " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source=.;Initial Catalog=;Integrated Security=True " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功压缩数据库 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button6_Click( object  sender, EventArgs e)
        {
// 在数据库中新建数据表
             string  MySQL  =   " IF OBJECT_ID(N'MyDatabase..商品清单', N'U') IS NOT NULL  "   +
                 
" DROP TABLE 商品清单; "   +
                
" CREATE TABLE 商品清单 ( "   +
                
" [货号] [char] (14) NOT NULL Primary Key, "   +
                
" [条码] [char] (14) NULL , "   +
                
" [拼音编码] [char] (40) NULL, "   +
                
" [品名] [varchar] (80) NULL , "   +
                
" [规格] [varchar] (40) NULL , "   +
                
" [单位] [char] (6) NOT NULL , "   +
                
" [产地] [varchar] (50) NULL , "   +
                
" [类别] [char] (20) NULL , "   +
                
" [进货价] [decimal] (28,6) NULL default(0), "   +
                
" [销售价1] [decimal] (28,6) NULL default(0), "   +
                
" [销售价2] [decimal] (28,6) NULL default(0), "   +
                
" [最低售价] [decimal] (28,6) NULL default(0)) " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source = .;Database = MyDatabase;Integrated Security=SSPI " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功在MyDatabase数据库中创建数据表 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button7_Click( object  sender, EventArgs e)
        {
// 在数据库中删除数据表
             string  MySQL  =   " IF OBJECT_ID(N'MyDatabase..商品清单', N'U') IS NOT NULL  "   +
                 
" DROP TABLE 商品清单; " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source = .;Database = MyDatabase;Integrated Security=SSPI " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功在MyDatabase数据库中删除数据表 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button8_Click( object  sender, EventArgs e)
        {
// 在数据表中修改数据列
            
// "[产地] [varchar] (50) NULL ,"
             string  MySQL  =   " ALTER TABLE 商品清单 ALTER COLUMN [产地] [char](100) NOT NULL; " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source = .;Database = MyDatabase;Integrated Security=SSPI " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功在“商品清单”数据表中修改数据列 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button9_Click( object  sender, EventArgs e)
        {
// 在数据表中添加数据列
             string  MySQL  =   " ALTER TABLE 商品清单 ADD [检验员] [varchar] (50) NULL; " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source = .;Database = MyDatabase;Integrated Security=SSPI " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功在“商品清单”数据表中添加数据列 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button10_Click( object  sender, EventArgs e)
        {
// 在数据表中删除数据列
             string  MySQL  =   " ALTER TABLE 商品清单 DROP COLUMN [检验员] ; " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source = .;Database = MyDatabase;Integrated Security=SSPI " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功在“商品清单”数据表中删除数据列 " " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
        
private   void  button11_Click( object  sender, EventArgs e)
        {
// 删除指定数据表中的所有记录
             string  MySQL  =   " TRUNCATE TABLE 商品清单; " ;
            SqlConnection MyConnection 
=   new  SqlConnection( " Data Source = .;Database = MyDatabase;Integrated Security=SSPI " );
            SqlCommand MyCommand 
=   new  SqlCommand(MySQL, MyConnection);
            
try
            {
                MyCommand.Connection.Open();
                MyCommand.ExecuteNonQuery();
                MessageBox.Show(
" 成功在“MyDatabase”数据库中删除“商品清单”数据表的所有记录 " " 信息提示 " , MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message, 
" 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
finally
            {
                MyConnection.Close();
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/qiangshu/archive/2009/12/05/1617469.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#关于 SQL Server 数据库的操作 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 为什么极端下派生类(多重虚拟继承)的大小包括超类成员大小的两倍?

    include
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 代码管理_阿里如何管理代码分支

    文章转载自 https mp weixin qq com s 0N3isbSZL4fM5HjZo1aafA 背景 在阿里内部 流行着许多有意思的工程实践 有些实践通过工具和流程嵌在集团的大环境里 外界不容易复制 有些实践则是流露在大家的日常
  • C++移动构造函数

    一 背景 拷贝构造函数又分为浅拷贝和深拷贝 但是存在如下问题 浅拷贝 当类中有指针时 直接复制 会使多个指针指向同一块内存 导致重复析构 深拷贝 每次都是重新赋值一份 这种方法内存消耗较大 因此C 就提供了移动构造函数 当需要动态分配内存或
  • linux上的arm虚拟机,ARM Linux教程之一:安装VirtualBox虚拟机

    虚拟机 Virtual Machine 指通过软件模拟的具有完整硬件系统功能的 运行在一个完全隔离环境中的完整计算机系统 通过虚拟机软件 你可以在一台物理计算机上模拟出另一台或多台虚拟的计算机 这些虚拟机完全就像真正的计算机那样进行工作 例
  • 网易笔试:给出n个物品,每个物品都有自己的价值,每个物品只有一件,这些物品需要分给两个人,要求分配完之后,两个人的物品价值相同。分配完成之后,丢弃剩下的物品,求最少要丢弃多少物品。

    题目描述 给出n个物品 每个物品都有自己的价值 每个物品只有一件 这些物品需要分给两个人 要求分配完之后 两个人的物品价值相同 分配完成之后 会丢弃剩下的物品 求最少要丢弃多少物品 输入 输入第一行为总的测试数据个数 第二行为物品个数n 第
  • mysql 表名 字段名_MySQL 查询所有数据库名和表名及字段名

    MySQL中查询所有数据库名和表名 1 查询所有数据库 show databases 2 查询指定数据库中所有表名 select table name from information schema tables where table s
  • 如何使用Windows学习Linux?

    作为一个开发人员 和服务器打交道是必不可少的 好多开发人员使用的是Windows 要学习Linux就得需要一台linux服务器 简单点使用VMware 或者掏钱各大云厂商购买一台服务器 但是作为初学者 只要你有一台Windows电脑 就可以
  • Spring框架(一)Spring核心,设计理念,创建,优缺点,使用场景···

    目录 一 什么是Spring 二 Spring的优缺点 三 Spring的设计理念和核心 目标 四 什么场景使用Spring 五 创建并使用Spring 六 Spring由哪些模块组成 七 Spring框架使用了哪些设计模式 源码 八 sp
  • Moonbeam开发课程的下一步:Moonbuilder闪亮登场

    本文有所删减 全文链接 Moonbeam开发课程的下一步 Moonbuilder闪亮登场 2021年12月3日 由Moonbeam中文团队与波卡技术社区OneBlock 联合主办的第一期 Moonbeam开发者入门课程 结业典礼以线上直播的
  • 搭建高可用 RocketMQ 集群

    RocketMQ发展历史 RocketMQ是一个由阿里巴巴开源的消息中间件 2012年开源 2017年成为apache顶级项目 RocketMQ在阿里内部应用是非常广泛的 阿里内部的几千个应用都运行在RocketMQ之上 双十一期间需要处理
  • @Resource和@Autowired注解的区别

    介绍 Resource和 Autowired都是做bean的注入时使用 但其实 Resource并不是Spring的注解 它的包是javax annotation Resource 需要导入 但是Spring支持该注解的注入 Spring不
  • 硬件设计31之LVDS与TMDS信号

    1 LVDS基础 原理 图文讲解 LVDS是一种低摆幅的差分信号技术 它使得信号能在差分PCB 线对或平衡电缆上以几百Mbps的速率传输 其低压幅和低电流驱动输出实现了低噪声和低功耗 IEEE 在两个标准中对LVDS 信号进行了定义 ANS
  • 音视频 SDL简介

    一 SDL简介 SDL Simple DirectMedia Layer 是一套开放源代码的跨平台多媒体开发库 使用C语言写成 SDL提供了数种控制图像 声音 输出入的函数 让开发者只要用相同或是相似的代码就可以开发出跨多个平台 Linux
  • 911接线员(C++制作)

    哈喽 鸽了许久的酱某终于回来啦 又来整新活了 在中国 紧急拨号一般分成 110 120 119 但在美国 他们的救援电话是一体的 那就是 911 一款名叫 911接线员 的游戏便应运而生了 但这并不是酱某我的游戏 今天我们就要复刻一下这款策
  • 字符串模式匹配

    字符串模式匹配 1 BF算法 初始时让目标T的第 0 位与模式P的第 0 位对齐 顺序比对目标T与模式P中的对应字符 若 P 与 T 比对发现对应位不匹配 则本趟失配 将 P 右移一位与 T 对齐 进行下一趟比对 若 P 与 T 对应位都相
  • STM8硬件IIC从机

    一 平台 芯片 STM8S103F3P6 环境 IAR STVP 系统 WIN7 二 目的 STM8S103F3P6 使用STM8标准库开发 角色 从机 方式 硬件IIC STM32H7 角色 主机 方式 IO口模拟IIC主机 主机发送命令
  • spark安装部署

    spark安装部署 需要指导私信 所有节点安装scala 安装scala需要安装openjdk 8 jre 当前用户如果没有sudo权限可将其加入sudo组里 以ubuntu2204 LTS为例 sudo apt update sudo a
  • 2023护网日记,护网工作内容、护网事件、告警流量分析

    2023护网日记 一 监控设备 二 工作内容 三 安全事件 1 失陷主机排查 2 后门网站修复 四 告警流量分析 1 信息泄露 2 SQL注入 3 文件上传 4 XSS 跨站脚本 5 代码执行 今年 HW 行动正式开启人员招募 总的来说 人
  • JMETER接口测试,参数关联,断言,定时器,前置处理器,后置处理器,cookie

    jmeter如何测试接口 jmeter可以做性能测试 当然同样可以用来做接口的自动测试 打开jmeter图形界面 右键添加一个线程组 取名 API接口测试 添加一个事务控制器 可以简单的先理解为一个接口组 例如 文件接口 用户接口 登录接口
  • LED+串口通信小试牛刀

    目录 一 搭建STM32的开发环境 1 安装STM32CubeMX 2 安装MDK5 二 闪烁原理 三 STM32CUBEMX生成代码 四 keil仿真调试并生成hex文件 五 运行结果 六 STM32通过串口通信 汇编 1 USART介绍
  • C#关于 SQL Server 数据库的操作

    C 创建SQL Server数据库 设置SQL Server数据库为只读状态 修改和压缩SQL Server数据库 新建 删除和修改 数据表 修改 新增和删除 数据列 代码 using System using System Collect