C#数据库操作小结

C# 数据库操作小结

引言

在 C# 应用程序开发中,数据库操作是非常常见的一项任务。本文将会从以下几个方面给读者提供 C# 数据库操作的攻略:

  1. 数据库连接
  2. 数据库查询
  3. 数据库插入
  4. 数据库更新
  5. 数据库删除

数据库连接

若要进行数据库操作,首先需要与数据库进行连接。以下是一个连接 MySQL 数据库的示例:

using System.Data;
using MySql.Data.MySqlClient;

// 数据库连接字符串
string connStr = "server=localhost;user=root;password=123456;database=testdb";

MySqlConnection conn = new MySqlConnection(connStr);
try
{
    conn.Open();
    Console.WriteLine("连接成功");
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
finally
{
    conn.Close();
    Console.WriteLine("连接已关闭");
}

此示例中,定义 connStr 为 MySQL 数据库的连接字符串,然后通过 MySqlConnection 来创建连接。在 try 块中,通过调用 conn.Open() 方法来打开数据库连接;在 catch 块中,若出现异常,则将其输出到控制台上;在 finally 块中,关闭数据库连接。

数据库查询

在 C# 中使用 SQL 语句进行数据库查询,需要用到 MySqlCommandMySqlDataReader 两个类。以下是一个查询 MySQL 数据库的示例:

using System.Data;
using MySql.Data.MySqlClient;

// 数据库连接字符串
string connStr = "server=localhost;user=root;password=123456;database=testdb";

MySqlConnection conn = new MySqlConnection(connStr);
try
{
    conn.Open();
    Console.WriteLine("连接成功");

    // SQL 语句
    string sql = "SELECT * FROM users";

    // 创建命令对象
    MySqlCommand cmd = new MySqlCommand(sql, conn);

    // 执行查询,并获取数据读取器
    MySqlDataReader reader = cmd.ExecuteReader();

    // 读取查询出来的数据
    while (reader.Read())
    {
        Console.WriteLine(reader["id"].ToString() + " " + reader["username"].ToString() + " " + reader["password"].ToString());
    }

    reader.Close();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
finally
{
    conn.Close();
    Console.WriteLine("连接已关闭");
}

此示例中,定义 sql 为查询 MySQL 数据库的 SQL 语句,通过 MySqlCommand 来执行 SQL 语句,获得查询的结果集,用 MySqlDataReader 对象读取查询出的数据。在 while 循环中,通过读取器逐个输出查询出的一行数据。

数据库插入

在 C# 中使用 SQL 语句进行数据库插入,需要用到 MySqlCommand 类的 ExecuteNonQuery() 方法。以下是一个插入 MySQL 数据库的示例:

using System.Data;
using MySql.Data.MySqlClient;

// 数据库连接字符串
string connStr = "server=localhost;user=root;password=123456;database=testdb";

MySqlConnection conn = new MySqlConnection(connStr);
try
{
    conn.Open();
    Console.WriteLine("连接成功");

    // SQL 语句
    string sql = "INSERT INTO users (username, password) VALUES (@username, @password)";

    // 创建命令对象
    MySqlCommand cmd = new MySqlCommand(sql, conn);
    cmd.Parameters.AddWithValue("@username", "zhangsan");
    cmd.Parameters.AddWithValue("@password", "123456");

    // 执行插入操作
    int affectedRows = cmd.ExecuteNonQuery();
    Console.WriteLine("插入成功,影响的记录数为:" + affectedRows);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
finally
{
    conn.Close();
    Console.WriteLine("连接已关闭");
}

此示例中,定义 sql 为插入 MySQL 数据库的 SQL 语句,通过 MySqlCommandExecuteNonQuery() 方法向数据库执行 SQL 语句,成功插入数据后,返回受影响的行数。

数据库更新

在 C# 中使用 SQL 语句进行数据库更新,同样需要用到 MySqlCommand 类的 ExecuteNonQuery() 方法。以下是一个更新 MySQL 数据库的示例:

using System.Data;
using MySql.Data.MySqlClient;

// 数据库连接字符串
string connStr = "server=localhost;user=root;password=123456;database=testdb";

MySqlConnection conn = new MySqlConnection(connStr);
try
{
    conn.Open();
    Console.WriteLine("连接成功");

    // SQL 语句
    string sql = "UPDATE users SET password=@password WHERE username=@username";

    // 创建命令对象
    MySqlCommand cmd = new MySqlCommand(sql, conn);
    cmd.Parameters.AddWithValue("@username", "zhangsan");
    cmd.Parameters.AddWithValue("@password", "654321");

    // 执行更新操作
    int affectedRows = cmd.ExecuteNonQuery();
    Console.WriteLine("更新成功,影响的记录数为:" + affectedRows);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
finally
{
    conn.Close();
    Console.WriteLine("连接已关闭");
}

此示例中,定义 sql 为更新 MySQL 数据库的 SQL 语句,通过 MySqlCommandExecuteNonQuery() 方法向数据库执行 SQL 语句,成功更新数据后,返回受影响的行数。

数据库删除

在 C# 中使用 SQL 语句进行数据库删除,同样需要用到 MySqlCommand 类的 ExecuteNonQuery() 方法。以下是一个删除 MySQL 数据库的示例:

using System.Data;
using MySql.Data.MySqlClient;

// 数据库连接字符串
string connStr = "server=localhost;user=root;password=123456;database=testdb";

MySqlConnection conn = new MySqlConnection(connStr);
try
{
    conn.Open();
    Console.WriteLine("连接成功");

    // SQL 语句
    string sql = "DELETE FROM users WHERE username=@username";

    // 创建命令对象
    MySqlCommand cmd = new MySqlCommand(sql, conn);
    cmd.Parameters.AddWithValue("@username", "zhangsan");

    // 执行删除操作
    int affectedRows = cmd.ExecuteNonQuery();
    Console.WriteLine("删除成功,影响的记录数为:" + affectedRows);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
finally
{
    conn.Close();
    Console.WriteLine("连接已关闭");
}

此示例中,定义 sql 为删除 MySQL 数据库的 SQL 语句,通过 MySqlCommandExecuteNonQuery() 方法向数据库执行 SQL 语句,成功删除数据后,返回受影响的行数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#数据库操作小结 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 关于Redis的工作模式

    在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master。 缺点:哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内…

    Redis 2023年4月13日
    00
  • Springboot集成Jasypt实现配置文件加密的方法

    下面是Spring Boot集成Jasypt实现配置文件加密的方法的完整攻略。 什么是Jasypt? Jasypt是一个开源的Java加密/解密库,可以手动或自动加密文本、属性和配置文件。Jasypt的目标是为Java开发人员提供简单易用、强大高效的数据加密工具。 集成Jasypt实现配置文件加密的方法 1. 添加Jasypt依赖 在Spring Boot项…

    database 2023年5月22日
    00
  • Mysql报Table ‘mysql.user’ doesn’t exist问题的解决方法

    问题描述 在使用Mysql时,有时会出现”Table ‘mysql.user’ doesn’t exist”这样的错误提示。这个错误通常是由于Mysql无法找到mysql.user表而导致的,从而无法完成授权等操作。 解决方法 针对这个问题,我们可以考虑以下的解决方法: 方法一:检查mysql.user表是否存在 首先,我们需要检查mysql.user表是否…

    database 2023年5月18日
    00
  • MySQL中dd::columns表结构转table过程及应用详解

    MySQL中dd::columns表结构转table过程及应用详解 在MySQL中,我们经常需要获取某张表的结构信息,这时可以使用SHOW COLUMNS FROM table_name命令来实现。但是,在某些场景下,我们需要将多张表的结构信息保存在一个单独的表中进行统计分析,因此需要将SHOW COLUMNS命令的结果转为表格式,这时就可以使用dd::co…

    database 2023年5月22日
    00
  • 聊聊spring @Transactional 事务无法使用的可能原因

    来聊聊Spring中@Transactional事务无法正常使用的可能原因。 1. 被注解的方法必须是public方法 注解@Transactional只能够应用于public方法之上。如果把这个注解用在一个非public的方法上面,它将被忽略。比如: // 正确写法 @Transactional public void save(Item item) { …

    database 2023年5月21日
    00
  • MySQL 截取字符串函数的sql语句

    MySQL 截取字符串函数可以用于截取字符串的其中一部分或者去除字符串的某些部分。常用的 MySQL 截取字符串函数有 SUBSTR、LEFT、RIGHT 和 MID。下面是详细的攻略: SUBSTR 函数 SUBSTR 函数可以截取一个字符串的其中一部分,并返回截取后的新字符串。使用 SUBSTR 函数的 SQL 语句如下: SELECT SUBSTR(字…

    database 2023年5月22日
    00
  • 用php代码限制国内IP访问我们网站

    限制国内IP访问网站可以增加网站的安全性,防止恶意攻击和非法访问。下面是用PHP代码实现限制国内IP访问网站的攻略。 步骤一:获取国内IP地址段 首先需要获取国内IP地址段,可通过互联网查找或购买国内IP地址库。本示例使用QQWry IP地址库作为演示。 步骤二:将IP地址段写入PHP数组 将获取到的IP地址段写入PHP数组中,如下所示: $chinaIP …

    database 2023年5月22日
    00
  • 查询Oracle中正在执行和执行过的SQL语句

    要查询Oracle数据库中正在执行和执行过的SQL语句,可以进行以下步骤: 步骤1:开启SQL跟踪 在Oracle数据库中,SQL跟踪是一种捕捉SQL执行信息的机制,它可以记录SQL语句的执行时间、执行计划、I/O等信息。要查询数据库中正在执行和执行过的SQL语句,需要先开启SQL跟踪。可以通过以下命令开启SQL跟踪: ALTER SESSION SET S…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部