写在前面:

常用数据库:

SQLserver:https://www.cnblogs.com/mexihq/p/11636785.html

Oracle:https://www.cnblogs.com/mexihq/p/11700741.html

MySQL:https://www.cnblogs.com/mexihq/p/12463423.html

Access:https://www.cnblogs.com/mexihq/p/12466970.html

在日常的工作中,通常一个项目会大量用的数据库的各种基本操作。SQLserver数据库是最为常见的一种数据库,本文则主要是记录了C#对SQL的连接、增、删、改、查的基本操作,如有什么问题还请各位大佬指教。后续也将对其他几个常用的数据库进行相应的整理,链接已经附在文章开始。话不多说,开始码代码。

引用:

using System.Data;              //DataSet引用集
using System.Data.SqlClient; //sql引用集

先声明一个SqlConnection便于后续使用。

private SqlConnection sql_con;//声明一个SqlConnection

sql打开:

/// <summary>
/// SQLserver open
/// </summary>
/// <param name="link">link statement</param>
/// <returns>Success:success; Fail:reason</returns>
public string Sqlserver_Open(string link)
{
  try
  {
    sql_con = new SqlConnection(link); 
    sql_con.Open();
    return "success";
  }
  catch (Exception ex)
  {
    return ex.Message;
  }
}

sql关闭:

/// <summary>
/// SQLserver close
/// </summary>
/// <returns>Success:success Fail:reason</returns>
public string Sqlserver_Close()
{
  try
  {
    if (sql_con == null)
    {
      return "No database connection";
    }
    if (sql_con.State == ConnectionState.Open || sql_con.State == ConnectionState.Connecting)
    {
      sql_con.Close();
      sql_con.Dispose();
    }
    else
    {
      if (sql_con.State == ConnectionState.Closed)
      {
  return "success";
      }
      if (sql_con.State == ConnectionState.Broken)
      {
        return "ConnectionState:Broken";
      }
    }
    return "success";
  }
  catch (Exception ex)
  {
    return ex.Message;
  }
}

sql的增删改:

/// <summary>
/// SQLserver insert,delete,update
/// </summary>
/// <param name="sql">insert,delete,update statement</param>
/// <returns>Success:success + Number of affected rows; Fail:reason</returns>
public string Sqlserver_Insdelupd(string sql)
{
  try
  {
    int num = ;
    if (sql_con == null)
    {
      return "Please open the database connection first";
    }
    if (sql_con.State == ConnectionState.Open)
    {
      SqlCommand sqlCommand = new SqlCommand(sql, sql_con);
      num = sqlCommand.ExecuteNonQuery();
    }
    else
    {
      if (sql_con.State == ConnectionState.Closed)
      {
        return "Database connection closed";
      }
      if (sql_con.State == ConnectionState.Broken)
      {
        return "Database connection is destroyed";
      }
      if (sql_con.State == ConnectionState.Connecting)
      {
        return "The database is in connection";
      }
    }
    return "success" + num;
  }
  catch (Exception ex)
  {
    return ex.Message.ToString();
  }
}

sql的查:

/// <summary>
/// SQLserver select
/// </summary>
/// <param name="sql">select statement</param>
/// <param name="record">Success:success; Fail:reason</param>
/// <returns>select result</returns>
public DataSet Sqlserver_Select(string sql, out string record)
{
  try
  {
    DataSet dataSet = new DataSet();
    if (sql_con == null)
    {
      record = "Please open the database connection first";
   return dataSet;
 }
if (sql_con.State == ConnectionState.Open)
    {
      SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sql, sql_con);
      sqlDataAdapter.Fill(dataSet, "sample");
      sqlDataAdapter.Dispose();
      record = "success";
      return dataSet;
    }
    if (sql_con.State == ConnectionState.Closed)
    {
      record = "Database connection closed";
      return dataSet;
    }
    if (sql_con.State == ConnectionState.Broken)
    {
     record = "Database connection is destroyed";
      return dataSet;
    }
    if (sql_con.State == ConnectionState.Connecting)
    {
      record = "The database is in connection";
      return dataSet;
    }
    record = "ERROR";
    return dataSet;
  }
  catch (Exception ex)
  {
    DataSet dataSet = new DataSet();
    record = ex.Message.ToString();
    return dataSet;
  }
}

小编发现以上这种封装方式还是很麻烦,每次对SQL进行增删改查的时候还得先打开数据库,最后还要关闭,实际运用起来比较麻烦。因此对上面两个增删改查的方法进行了重载,在每次进行操作时都先打开数据库,然后关闭数据库。

/// <summary>
/// SQLserver insert,delete,update
/// </summary>
/// <param name="sql">insert,delete,update statement</param>
/// <param name="link">link statement</param>
/// <returns>Success:success + Number of affected rows; Fail:reason</returns>
public string Sqlserver_Insdelupd(string sql, string link)
{
  try
  {
    int num = ;
    using (SqlConnection con = new SqlConnection(link))
    {
      con.Open();
      SqlCommand cmd = new SqlCommand(sql, con);
      num = cmd.ExecuteNonQuery();
      con.Close();
      return "success" + num;
    }
  }
  catch (Exception ex)
  {
    return ex.Message.ToString();
  }
}
/// <summary>
/// SQLserver select
/// </summary>
/// <param name="sql">select statement</param>
/// <param name="link">link statement</param>
/// <param name="record">Success:success; Fail:reason</param>
/// <returns>select result</returns>
public DataSet Sqlserver_Select(string sql, string link, out string record)
{
  try
  {
    DataSet ds = new DataSet();
    using (SqlConnection con = new SqlConnection(link))
    {
      con.Open();
      SqlDataAdapter sda = new SqlDataAdapter(sql, con);
      sda.Fill(ds, "sample");
      con.Close();
      sda.Dispose();
      record = "success";
      return ds;
    }
  }
  catch (Exception ex)
  {
    DataSet dataSet = new DataSet();
    record = ex.Message.ToString();
    return dataSet;
  }
}

C#学习--SQL server数据库基本操作(连接、增、删、改、查)封装的更多相关文章

  1. Mysql基本操作语句 增-删-改-查

    增 INSERT INTO 表名(属性名1,属性名2) VALUES(值1,值2) 删 DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子 ...

  2. 怎样从C#中打开数据库并进行 增 删 改 查 操作

    首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...

  3. Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)

    一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...

  4. Java操作MongoDB:连接&增&删&改&查

    1.连接 ①方式一 MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置 Mo ...

  5. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  6. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  7. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  8. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  9. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

随机推荐

  1. zabbix监控PHP脚本

    scripts]# cat php_fpm_status.sh #!/bin/bash ############################################ #$name: ngi ...

  2. 搭建自己的技术博客系列(一)使用 hexo 搭建一个精美的静态博客

    1.安装 Git 和 nodejs https://hexo.io/zh-cn/docs/

  3. Android-隐藏app图标以及隐式启动

    隐藏APP桌面图标 <activity android:name=".LaunchActivity"> <intent-filter> <action ...

  4. Google工程师亲授 Tensorflow2.0-入门到进阶

    第1章 Tensorfow简介与环境搭建 本门课程的入门章节,简要介绍了tensorflow是什么,详细介绍了Tensorflow历史版本变迁以及tensorflow的架构和强大特性.并在Tensor ...

  5. [币严区块链]USDT钱包节点搭建

    USDT是基于BTC发的稳定币,它是比特币的一条侧链,说简单点,就是在比特币区块数据的不可篡改性与区块唯一性的基础上,再封装了一层.具体原理可网上查资料.总之理解一点:USDT的钱包节点就是BTC的钱 ...

  6. maven引入jar包冲突问题

    1.原因 使用maven过程中,经常会遇到jar包重复加载或者jar包冲突的问题,但是有些jar包是由于maven加载了其他jar包自动引入的,并非自己主动添加的,导致和自己添加的jar包版本冲突 举 ...

  7. DevExpress的PdfViewer添加工具栏实现PDF打开、预览、保存、打印

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  8. 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook

    可能你已经知道,Python 在 14 年后的“崛起”,得益于机器学习和数学统计应用的兴起.那为什么 Python 如此适合数学统计和机器学习呢?作为“老司机”的我可以肯定地告诉你,Jupyter N ...

  9. sql server 2014 的安装

    1.双击打开sql_server2014的安装包 2.点击弹出来的对话框的确定按钮 3.等待一会,安装包在准备中 4.弹出SQL server 安装中心,点击全新 SQL Server 独立安装 5. ...

  10. 类似Flag counter被园子禁用后的备选方案

    背景介绍 2019年9月4日,园子发生严重事故,影响范围为整个园子.随着bug的修复,从个人博客无法访问——>公告栏部分功能禁用——>文件无法上传(多个文章中的图片均加载不出来)——> ...