ADO.NET增删改查

数据库准备

CREATE TABLE TBLUSER (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    USERNAME NVARCHAR(50) NOT NULL UNIQUE,
    PASSWORD NVARCHAR(50) NOT NULL,
    NAME NVARCHAR(50),
    GENDER NVARCHAR(10),
    BIRTHDAY DATE,
    CREATEDATE DATETIME DEFAULT GETDATE()
);

INSERT INTO TBLUSER (USERNAME, PASSWORD, NAME, GENDER, BIRTHDAY, CREATEDATE)
VALUES 
('2010120', '123456', '张三', '男', '1990-01-01', GETDATE()),
('2010121', '123456', '李四', '男', '1991-02-02', GETDATE()),
('2010122', '123456', '王五', '男', '1992-03-03', GETDATE()),
('2010123', '123456', '赵六', '女', '1993-04-04', GETDATE()),
('2010124', '123456', '孙七', '女', '1994-05-05', GETDATE()),
('2010125', '123456', '周八', '男', '1995-06-06', GETDATE()),
('2010126', '123456', '吴九', '女', '1996-07-07', GETDATE()),
('2010127', '123456', '郑十', '男', '1997-08-08', GETDATE()),
('2010128', '123456', '冯十一', '女', '1998-09-09', GETDATE()),
('2010129', '123456', '陈十二', '男', '1999-10-10', GETDATE());

ADO连接数据库

using System.Data.SqlClient;

namespace ADO
{
  public class Program
  {
    static void Main(string[] args)
    {
      //连接数据库1-创建连接字符串
      string connectionString = "Data Source=WLQ-CP\\SQLEXPRESS01;Initial Catalog=TestDB;Integrated Security=True";

      //连接数据库2-创建连接对象
      using (SqlConnection connection = new SqlConnection(connectionString))
      {
        //连接数据库3-打开连接
        connection.Open();
        //通过调用ExecuteReader()方法,将给定的sql语句在服务端执行
        using (SqlCommand command = new SqlCommand("SELECT * FROM TBLUSER", connection))
        {
          using (SqlDataReader reader = command.ExecuteReader())
          {
            if (reader.HasRows)
            {
              while (reader.Read())
              {
                for (int i = 0; i<reader.FieldCount; i++)
                {
                  //当遇到数据库中的null值,通过reaser,GetVaule()或者reader[]索引器来获取值,拿到的是DBNULL.value,不是C#的null,而DBNULL.valuede ToString ()方法返回的是空字符串,所以最终并没有报错
                  Console.WriteLine(reader.GetValue(i));
                  // Console.WriteLine(reader["ID"]);
                  // Console.WriteLine(reader[i].ToString());
                }
              }
            }
            else {
              Console.WriteLine("没有查询任何数据");
            }
          }
        }
      }
    }
  }
}

DataReader的特点:

1.DataReader是只读,只进。只能通过reader读取数据,不能修改,reader只能一条一条向前移动,不能向后,也不能跳跃。

2.使用reader时必须保持连接是打开状态,当reader使用完毕后,必须把datareader关闭,释放,同时关闭释放连接对象

3.默认情况下DataReader要求独占一个连接对象。

using System.Data.SqlClient;

namespace ADO
{
    public class Program
    {
        static void Main(string[] args)
        {
            //连接数据库1-创建连接字符串
            string connectionString = "Data Source=WLQ-CP\\SQLEXPRESS01;Initial Catalog=TestDB;Integrated Security=True";

            //连接数据库2-创建连接对象
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                //连接数据库3-打开连接
                connection.Open();
                //通过调用ExecuteReader()方法,将给定的sql语句在服务端执行
                String sql = "select count(*) from tbluser where username='2010120' and password='123456'";
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    SqlDataReader reader = command.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            int count = reader.GetInt32(0); // 读取第一列的值,即count(*)
                            Console.WriteLine($"满足条件的用户数量: {count},登录成功");
                        }
                    }
                    else
                    {
                        Console.WriteLine("没有查询任何用户数据");
                    }
                }
            }
        }
    }
}

通过ado.net向表中插入一条数据

 using System.Data.SqlClient;

namespace ADO
{
    public class Program
    {
        static void Main(string[] args)
        {
            //连接数据库1-创建连接字符串
            string connectionString = "Data Source=WLQ-CP\\SQLEXPRESS01;Initial Catalog=TestDB;Integrated Security=True";

            //连接数据库2-创建连接对象
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                //连接数据库3-打开连接
                connection.Open();
                //通过调用ExecuteReader()方法,将给定的sql语句在服务端执行
                String sql = string.Format("insert into tbluser(id,username) values (N'{0}',N'{1}')", 11, "张三");
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    int r=command.ExecuteNonQuery();
                    if(r>0)
                    {
                        Console.WriteLine("插入成功!");
                    }
                    else
                    {
                        Console.WriteLine("插入了"+r+"行");
                    }

                }
            }
        }
    }
}

以下语句返回的是新增的ID编号

insert into tbluser(username) output inserted.ID values ('小明')

通过ado.net向表中删除一条数据

using System.Data.SqlClient;

namespace ADO
{
    public class Program
    {
        static void Main(string[] args)
        {
            //连接数据库1-创建连接字符串
            string connectionString = "Data Source=WLQ-CP\\SQLEXPRESS01;Initial Catalog=TestDB;Integrated Security=True";

            //连接数据库2-创建连接对象
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                //连接数据库3-打开连接
                connection.Open();
                //通过调用ExecuteReader()方法,将给定的sql语句在服务端执行
                String sql = string.Format("delete from tbluser where id={0}", 11);
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    int r=command.ExecuteNonQuery();
                    if(r>0)
                    {
                        Console.WriteLine("成功删除"+r+"条数据!");
                    }
                    else
                    {
                        Console.WriteLine("删除失败");
                    }

                }
            }
        }
    }
}

通过ado.net向表中更新一条数据

using System.Data.SqlClient;

namespace ADO
{
    public class Program
    {
        static void Main(string[] args)
        {
            //连接数据库1-创建连接字符串
            string connectionString = "Data Source=WLQ-CP\\SQLEXPRESS01;Initial Catalog=TestDB;Integrated Security=True";

            //连接数据库2-创建连接对象
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                //连接数据库3-打开连接
                connection.Open();
                //通过调用ExecuteReader()方法,将给定的sql语句在服务端执行
                String sql = "UPDATE tbluser SET username = '李四' WHERE id = 10";
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    int r = command.ExecuteNonQuery();
                    if (r>0)
                    {
                        Console.WriteLine("成功更新"+r+"条数据!");
                    }
                    else
                    {
                        Console.WriteLine("更新失败");
                    }

                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值