C# 操作SQL Server数据库, ExecuteNonQuery()方法参数化执行T-SQL语句, UPDATE, 更新数据

C# 操作SQL Server数据库, ExecuteNonQuery()方法参数化执行T-SQL语句, UPDATE, 更新数据


--ExecuteNonQuery()
对连接执行 Transact-SQL 语句并返回受影响的行数,如果SQL语句是对数据库的记录进行操作(如记录的增加、删除和更新),那么方法将返回操作所影响的记录条数。


--ExecuteScalar()
执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。该方法所返回的结果为object类型,在使用之前必须强制转换为所需的类型。


--ExecuteReader()
将 CommandText 发送到 Connection,并生成 SqlDataReader。DataReader对象提供了游标形式的读取方式,当从结果行中读取了一行,则游标会继续读取到下一行。通过read方法可以判断数据是否还有下一行,如果存在数据,则继续运行返回true,如果没有数据,则返回false。


创建SQL Server数据库、数据表:

USE master;
GO

--创建数据库
IF NOT EXISTS(SELECT * FROM dbo.sysdatabases WHERE [name]='TestDB')
	CREATE DATABASE TestDB;
GO

--使用数据库
USE TestDB;
GO

--创建用户表
IF EXISTS(SELECT * FROM sysobjects WHERE [name]='Users')
	DROP TABLE [Users]
GO
CREATE TABLE [Users](
		[Id] [int] IDENTITY(1,1),--主键
		[Name] [nvarchar](50) NOT NULL,--姓名
		[Sex] [nvarchar](10),--性别
		PRIMARY KEY([Name])
);
GO

INSERT INTO [Users]([Name],[Sex]) VALUES ('Alice','Female');
INSERT INTO [Users]([Name],[Sex]) VALUES ('Amy','Female');
INSERT INTO [Users]([Name],[Sex]) VALUES ('Bruce','Male');


C#代码:

using System;
using System.Data.SqlClient;

namespace SqlServerDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "Data Source=127.0.0.1,1433;Initial Catalog=TestDB;uid=sa;pwd=123456";
            string sqlstring = "UPDATE [Users] SET [Sex]=@Sex WHERE [Name]=@Name;";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    conn.Open();
                    cmd.Connection = conn;
                    cmd.CommandText = sqlstring;
                    cmd.CommandType = System.Data.CommandType.Text;

                    // 绑定参数, 方式一
                    cmd.Parameters.AddWithValue("@Name", "Bruce");
                    cmd.Parameters.AddWithValue("@Sex", "Female");

                    //// 绑定参数, 方式二
                    //cmd.Parameters.Add("@Name", SqlDbType.NVarChar);
                    //cmd.Parameters.Add("@Sex", SqlDbType.NVarChar);
                    //cmd.Parameters["@Name"].Value = "Bruce";
                    //cmd.Parameters["@Sex"].Value = "Female";

                    try
                    {
                        // 返回受影响的行数, 执行INSERT语句, 返回创建条目数
                        //                  执行UPDATE语句, 返回更新条目数
                        //                  执行DELETE语句, 返回删除条目数
                        int val = cmd.ExecuteNonQuery();
                        Console.WriteLine(val);
                    }
                    catch
                    {
                        throw;
                    }
                }
            }

            Console.Read();
        }
    }
}


作者最新文章
C# 使用 CSVHelper 操作 csv 文件, .net core, .net framework 读取写入 csv 文件
C# 实现字符串文本换行的方法,文本如何换行
C# 如何循环读取文件每一行文本内容
C# DateTime AddMonths 的错误用法导致跳过日期
C# 全角转换半角,半角转换为全角