C#实现连接SQL Server2012数据库并执行SQL语句的方法

C# 是一种跨平台、面向对象的编程语言,可用于开发各种类型的应用程序,包括与 SQL Server 等数据库系统的交互。本文将详细介绍 C# 实现连接 SQL Server2012 数据库并执行 SQL 语句的方法。

连接 SQL Server2012 数据库

使用 C# 连接 SQL Server2012 数据库,需要使用 System.Data.SqlClient 命名空间中的 SqlConnection 类。可以使用以下代码建立连接:

string connectionString = "Server=myServerAddress; Database=myDataBase; User Id=myUsername; Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

其中,connectionString 是连接字符串,指定了数据库服务器的地址、要访问的数据库名称、数据库用户的用户名和密码。如果连接成功,就可以使用 connection 对象执行 SQL 命令了。

执行 SQL 命令

使用 SqlConnection 对象执行 SQL 命令,需要使用 SqlCommand 对象和 ExecuteNonQuery 方法。以下代码演示了执行 INSERT 语句的方法:

string commandText = "INSERT INTO myTable (column1, column2) VALUES (@value1, @value2)";
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.AddWithValue("@value1", "some value");
command.Parameters.AddWithValue("@value2", 123);
int rowsAffected = command.ExecuteNonQuery();

其中,commandText 是 SQL 命令字符串,@value1 和 @value2 是参数名,可以通过 AddWithValue 方法指定参数值,rowsAffected 是受影响的行数。

以下代码演示了执行 SELECT 语句并读取结果的方法:

string commandText = "SELECT column1, column2 FROM myTable WHERE column2 > @value";
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.AddWithValue("@value", 100);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine("Column 1: " + reader.GetString(0));
    Console.WriteLine("Column 2: " + reader.GetInt32(1));
}
reader.Close();

其中,commandText 是 SQL 命令字符串,@value 是参数名,可以通过 AddWithValue 方法指定参数值,reader 是 SqlDataReader 对象,可以使用 Read 方法逐行读取查询结果并操作每一行的数据。

示例说明

以下是一个完整的示例代码,演示如何连接 SQL Server2012 数据库,执行 INSERT 和 SELECT 语句,并输出结果:

string connectionString = "Server=myServerAddress; Database=myDataBase; User Id=myUsername; Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// 插入新记录
string insertCommandText = "INSERT INTO myTable (column1, column2) VALUES (@value1, @value2)";
SqlCommand insertCommand = new SqlCommand(insertCommandText, connection);
insertCommand.Parameters.AddWithValue("@value1", "some value");
insertCommand.Parameters.AddWithValue("@value2", 123);
int rowsAffected = insertCommand.ExecuteNonQuery();
Console.WriteLine("Rows Affected: " + rowsAffected);

// 查询记录
string selectCommandText = "SELECT column1, column2 FROM myTable WHERE column2 > @value";
SqlCommand selectCommand = new SqlCommand(selectCommandText, connection);
selectCommand.Parameters.AddWithValue("@value", 100);
SqlDataReader reader = selectCommand.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine("Column 1: " + reader.GetString(0));
    Console.WriteLine("Column 2: " + reader.GetInt32(1));
}
reader.Close();

// 关闭连接
connection.Close();

以上代码可以在 Visual Studio 中创建控制台应用程序,粘贴到 Program.cs 文件中,直接运行即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现连接SQL Server2012数据库并执行SQL语句的方法 - Python技术站

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

相关文章

  • mysql升级后报Table ‘mysql.servers’ doesn’t exist

    解决Table ‘mysql.servers’ doesn’t exist 今天遇到一事,就是我在升级mysql数据库后进入数据建立一远程用户,结果报错了。 mysql> flush privileges; ERROR 1146 (42S02): Table ‘mysql.servers’ doesn’t exist   这是由于升级完数据库后丢失原有…

    MySQL 2023年4月12日
    00
  • redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect time out

    redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed outat redis.clients.jedis.Connection.connect(Connection.java:154)at redis.cl…

    Redis 2023年4月16日
    00
  • MySQL 中的事务理解

    MySQL 中的事务 前言 原子性 一致性 持久性 并发事务存在的问题 脏读 幻读 不可重复读 隔离性 事务的隔离级别 事务隔离是如何实现 可重复读 和 读提交 串行化 读未提交 可重复读解决了幻读吗 总结 参考 MySQL 中的事务 前言 MySQL 中的事务操作,要么修改都成功,要么就什么也不做,这就是事务的目的。事务有四大特性 ACID,原子性,一致性…

    MySQL 2023年4月12日
    00
  • SQL SERVER 2008 r2 数据压缩的两种方法第1/2页

    SQL SERVER 2008 r2 数据压缩的两种方法是:页压缩和行压缩。 页压缩 简介 SQL SERVER 2008 r2 数据压缩的页压缩方法利用了数据在页面上的重复性,通过对重复数据的压缩来达到减少磁盘占用的目的。此方法又称为字典压缩,能够将数据压缩至原大小的 50% 或更少。 开启页压缩 开启页压缩的方法是使用以下 T-SQL 语句: — 开启…

    database 2023年5月21日
    00
  • Redis构建分布式锁

    下面是详细的Redis构建分布式锁的攻略: 什么是分布式锁? 分布式锁就是在分布式系统中,为了控制不同节点对共享资源并发访问,实现数据一致性,而设置的一种同步机制。分布式锁主要实现两个功能:1. 互斥访问:同一时刻只能有一个节点对分布式锁进行加锁操作,其他节点只能等待。2. 防止死锁:当某个节点持有锁超时或者失效时,通过在加锁时设置一个过期时间来避免死锁的发…

    database 2023年5月22日
    00
  • 深入了解Redis的性能

    深入了解Redis的性能攻略 简介 Redis 是一种基于内存的 key-value 存储系统,拥有高级别的数据结构,这使得 Redis 具有非常高的性能,可以很好地应对各种数据访问场景。然而,性能也是 Redis 重要的一部分,如何了解 Redis 的性能并做出优化是非常重要的。 本文将介绍深入了解 Redis 的性能的攻略,包括如何排查问题、如何优化性能…

    database 2023年5月22日
    00
  • nodejs基础应用

    Node.js基础应用攻略 Node.js(简称Node)是一种基于Chrome V8引擎的JavaScript运行时环境,可用于快速构建高性能、可扩展的网络应用程序。 Node.js安装 访问Node官方网站,下载适用于你的系统的安装程序。 运行安装程序,按照提示进行安装。 Node.js开发环境配置 开发Node.js需要安装以下工具: 编辑器:可以选择…

    database 2023年5月22日
    00
  • zabbix监控mysql的实例方法

    让我来详细讲解一下“zabbix监控MySQL的实例方法”。 一、安装zabbix 首先需要在服务器上安装zabbix,可以通过以下几个步骤来完成安装: 下载zabbix的安装包 可以在zabbix官网下载页面下载相应的zabbix版本。这里以zabbix 5.0.1为例,下载链接为:https://cdn.zabbix.com/zabbix/sources…

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