ado.net笔记

最近在学习C#,实习公司要用,黑天白夜的学;加油吧,
笔记内容视频来自黑马视频;;b站
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.创建链接字符串
            //Data Source=链接地址
            //Initial Catalog=连接的数据库
            //Integrated Security=True 默认没有,密码
            //string connStr= "Data Source=192.168.1.49;Initial Catalog=FruitShop;User Id=sa;Password=enjoyor;";

            string connStr = "Data Source=.;Initial Catalog=Fruitshop;Integrated Security=True;";
            #region 向表中插入一条数据
            //using (SqlConnection conn = new SqlConnection(connStr))
            //{


            //    string sql= "insert into Fruit(fruit_name,fruit_aliasname,fruit_purchaseprice,fruit_retailprice)  values ('槟榔', '柠檬',30.00, 40.00)";

            //    using(SqlCommand cmd=new SqlCommand(sql, conn))
            //    {
            //        //1.最早打开链接,最晚关闭链接(节省资源)
            //        conn.Open();
            //        Console.WriteLine("数据库连接成功");
            //        //2.执行sql语句
            //      int r=  cmd.ExecuteNonQuery();//insert\delete\update语句经常使用 ---有一个返回值int类型,表示执行语句后所影响的行数;
            //        //注意:只有执行insert\delete\update语句的时候会返回所影响的行数,其他只返回-1
            //       /* cmd.ExecuteScalar();//当执行返回单个结果的时候(一行一列)
            //返回的是object类型
            //       cmd.ExecuteReader();//当查询多行多列时候*/
            //    }
            //}
            //Console.ReadKey();
            #endregion
            #region 删除表中的数据
            //using (SqlConnection conn=new SqlConnection(connStr))
            //{
            //    string sql = "delete from Fruit where fruit_id=12";
            //    //创建执行sql语句执行对象
            //    using (SqlCommand cmd = new SqlCommand(sql, conn))
            //    {
            //        conn.Open();
            //        int r = cmd.ExecuteNonQuery();
            //        if (r > 0)
            //        {
            //            Console.WriteLine("删除成功{0}",r);
            //        }
            //    }
            //}
            #endregion
            #region 修改表中的数据
            //using(SqlConnection conn=new SqlConnection(connStr))
            //{
            //    conn.Open();
            //    string sql = "UPDATE Fruit set Fruit_name='战斗天使' where fruit_id=5";
            //    using(SqlCommand com=new SqlCommand(sql, conn))
            //    {
            //       int r= com.ExecuteNonQuery();
            //        if (r > 0)
            //        {
            //            Console.WriteLine("删除了{0}", r);
            //        }
            //    }
            //}
            #endregion
            #region 查询数据库
            using (SqlConnection conn = new SqlConnection(connStr))
            {

                //string str = "select count(*) from Fruit";
                string str = "select * from Fruit";
                using (SqlCommand com = new SqlCommand(str, conn))
                {
                    conn.Open();
                    //当sql语句执行时,如果是聚合函数executescalar不可能是null,
                    //因为聚合函数不会返回null,如若不然可能返回是null,那就必须先要判断是否为null;
                    //object r = (int)com.ExecuteScalar();
                    //SqlDataReader reader = com.ExecuteReader();
                    //Convert.ToInt32(ExecuteScalar());
                    //整数,字符串不会异常(int)就会
                    //Console.WriteLine(r);

                    //1.数据库接收到sql语句后,开始执行sql语句
                    //2.执行完毕sql后,会从表中查询出一些数据。
                    //注意:这些查询出的数据是保存在了”数据服务器“的内存当中,
                    //并没有返回给应用程序,只是返回给应用程序一个reader对象,这个对象
                    //就是用来获取数据对象
                    using (SqlDataReader reader = com.ExecuteReader())
                    {
                        //接下来要通过reader对象一条条获取数据
                        //1.在获取数据之前,先判断一下本次执行查询后,是否有数据
                        if (reader.HasRows) {//如果有数据,true
                                             //1.如果有数据只能一条一条获取,reader只能一条一条获取
                                             //2.每次获取数据之前,都要先调用reader.Read()方法,向后移动一条数据,
                                             //    如果成功移动到了某条数据上,则返回true,相反
                            while (reader.Read())
                            {
                                //1.获取当前reader指向的数据
                                //---reader.FieldCount,可以获取当前查询语句查询出的列的个个数
                               for(int i = 0; i < reader.FieldCount; i++)
                                {
                                    //但数据库中的null值的时候,这几个方法拿到的是DBNull.value,
                                    //不是c#的null。DB的ToString返回方法是空字符串,没有报错

                                    //reader.GetXXX();   使用强制类型读取列中的数据
                                    Console.Write(reader[i] + "  |   ");
                                    //通过reader["fruit_name"]索引器,可以使用列名来获取列的值

                                    //reader.GetValue()只能通过索引来获取值
                                    //reader.GetOrdinal()根据列的名称获取列的值
                                    //Console.WriteLine(reader.GetOrdinal("fruit_id"));
                                }
                                Console.WriteLine();
                            }

                        }else
                        {

                            Console.WriteLine("没有查到任何数据!!!!");
                        }
                            
                    }

                }
                Console.ReadKey();
            }
            #endregion


        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值