ADO.Net实现连接数据库增删改查

一般ADO.Net连接数据库的基本步骤如下:

//数据库连接一般分为两种:1.Windwos身份验证登录;2.Sql Server身份验证登录
            /*步骤:
             * 1:using System.Data.SqlClient;//引入命名空间
             * 2:声明连接数据库字符串
             * 3:创建SqlConnection对象
             * 4:调用对象的Open方法就可以打开数据库了
             * 5:关闭数据库
            */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;//引入命名空间

namespace ADO.Net
{
    class _1Connection连接关闭数据库
    {
        public static void Main(string[] args)
        {
            //数据库连接一般分为两种:1.Windwos身份验证登录;2.Sql Server身份验证登录
            /*步骤:
             * 1:using System.Data.SqlClient;//引入命名空间
             * 2:声明连接数据库字符串
             * 3:创建SqlConnection对象
             * 4:调用对象的Open方法就可以打开数据库了
             * 5:关闭数据库
            */
            //Server=.;//本机登录直接.即可
            //string conStr= "Server=.;database=***;Integrated Security=True";
            string conStr = "Server=服务器名(ip地址);user=sa;pwd=***;database=数据库名";
            SqlConnection mySqlCon = new SqlConnection(conStr);


            /*mySqlCon.Open();
            Console.WriteLine("数据库已经被成功打开了");

            //关闭数据库
            //1:close
            mySqlCon.Close();//虽然C#有垃圾回收机制(GC),但是在使用完数据库最好自己关闭来提高性能
            Console.WriteLine("数据库已经被成功关闭");
            */

            //也可以用using语句,try...catch...finally语句等来关闭数据库提高性能
            //2:using
            //using (mySqlCon)
            //{
            //    mySqlCon.Open();
            //    Console.WriteLine("数据库已经被成功打开了");
            //}
            //3:try...catch...finally
            try
            {
                mySqlCon.Open();
                Console.WriteLine("数据库已经被成功打开了");
            }
            catch
            {

            }
            finally
            {
                mySqlCon.Close();
                Console.WriteLine("数据库已经被成功关闭");
            }
        }

    }
}

连接了数据库后,就可以进行操作了,增删改操作要用到Command对象:

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

namespace ADO.Net
{
    class _2Command操作数据
    {
        public static void Main(string[] Args)
        {
            /*
             * Command常用属性
             * 1:CommandText:要下达至数据源的命令
             * 2:CommandTimeout:出错时等待时间
             * Command三种方法:
             * 1:ExecuteNonQuery():不返还任何值,一般应用于insert,update,delete语句
             * 2:ExecuteScalar():返回一个值,一般用于只返回一个值的语句,比如数据统计的count
             *                      语句,Max,Min等
             * 3:ExecuteReader(): 返回一个IDataReader,可用于迭代返回记录
             */
            string conStr = "Server=服务器名(ip地址);user=sa;pwd=***;database=数据库名";
            SqlConnection mySqlCon = new SqlConnection(conStr);
            try
            {
                //创建Command对象
                //mySqlCon.Open();
                //string sql = "select * from EMP_Lanbo1";//sql语句
                //SqlCommand mySqlcom = new SqlCommand(sql, mySqlCon);

                //mySqlcom.CommandTimeout = 2;//2秒内如果还没连接成功就认为出错了
                //Console.WriteLine("创建Command对象成功");

                //更改数据(增,删,改)
                 mySqlCon.Open();
                string sqlNoQuery = "insert Student values('e','女','32','软件')";
                SqlCommand mySqlCom = new SqlCommand(sqlNoQuery, mySqlCon);
                mySqlCom.ExecuteNonQuery();
                Console.WriteLine("修改数据成功");

                //mySqlCon.Open();
                //string str = "select max(age) from Student";
                //SqlCommand mySqlCom = new SqlCommand(str, mySqlCon);
                //int i = Convert.ToInt32(mySqlCom.ExecuteScalar());
                //Console.WriteLine("年龄最大的是:" + i);

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message.ToString());
            }
            finally
            {
                mySqlCon.Close();
            }
        }
    }
}

数据库中:
在这里插入图片描述
增加一条记录后:
在这里插入图片描述
查用到的是DataReader对象:

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

namespace ADO.Net
{
    class _3DataReader读取数据
    {
        static void Main(string[] args)
        {
              string conStr = "Server=服务器名(ip地址);user=sa;pwd=***;database=数据库名";
            SqlConnection mySqlCon = new SqlConnection(str);
            try
            {
                mySqlCon.Open();
                string sql1 = "select * from Student";
                SqlCommand mySqlCom = new SqlCommand(sql1, mySqlCon);

                //查
                //ExecuteReader返回一个DataReader对象
                SqlDataReader mySqlDR = mySqlCom.ExecuteReader();
                if (mySqlDR.HasRows)//有行,说明有内容
                {
                    Console.WriteLine("表中存在数据");
                    Console.WriteLine("一共" + mySqlDR.FieldCount + "个字段");
                }
                else
                    Console.WriteLine("表中不存在数据");
                Console.WriteLine();

                //DataReader常用方法:
                //1:GetDataTypeName:获取指定字段的数据类型
                //2:GetName:获取指定字段的名称
                //3:GetOrdinal:获取指定字段名称在记录中的顺序
                //4:Read:读取下一条数据
                //5:GetValue:获得一条记录中指定字段的数据,注意,要先Read才能取值
                //6:GetValues:获得一条记录中全部字段的数据
                //7:close:关闭DataReader对象

                for (int i = 0; i < mySqlDR.FieldCount; i++)
                {
                    Console.WriteLine("数据类型:"+mySqlDR.GetDataTypeName(i));
                    Console.WriteLine("字段名:"+mySqlDR.GetName(i));
                    Console.WriteLine("字段" + mySqlDR.GetName(i) + "在表中顺序为:" + mySqlDR.GetOrdinal(mySqlDR.GetName(i)));
                }
                Console.WriteLine();

                //一次读取每条记录中的指定字段的值                
                //while(mySqlDR.Read())
                //{
                //    for (int i = 0; i < mySqlDR.FieldCount; i++)
                //        Console.Write(mySqlDR.GetValue(i)+" ");
                //    Console.WriteLine();
                //}
                //Console.WriteLine();

                //一次读取每条记录中所欲字段的值
                while (mySqlDR.Read())
                {
                    object[] myObj = new object[mySqlDR.FieldCount];
                    mySqlDR.GetValues(myObj);
                    foreach (var i in myObj)
                        Console.Write(i + " ");
                    Console.WriteLine();
                }
                Console.WriteLine();


                Console.WriteLine(mySqlDR.IsClosed);
                if(!mySqlDR.IsClosed)
                    mySqlDR.Close();
                

                
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message.ToString());
            }
            finally
            {
                mySqlCon.Close();
            }
       


        }
    }
}

结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值