zoukankan      html  css  js  c++  java
  • 第五节 4ADO.NET详解 简单

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    /* 执行简单的Insert语句
     * SqlCommand表示向服务提交的一个命令(SQL语句等)
     * CommandText属性为要执行的sql语句,ExecuteNonQuery方法执行一个非查询语句(Update, Insert, Delete等)
     * using (SqlCommand cmd = conn.CreateCommand()){
     *    cmd CommandText = "Insert into T_Users(UserName, Password) Values('admin','88888888')";
     *    cmd.ExecuteNonQuery();
     * }
     * 
     * ExecuteNonQuery返回值是执行的影响行数
     * 常犯错:
     * string username='test';
     * 
     * cmd CommandText = "Insert into T_users(UserName, Passwd value('username','8888888'))";
     *
     * 执行查询
     * 搪行的多行结果集的用ExecuteReader
     * SqlDateReader reader = cmd.ExecuteReader()
     * while(reader.Read()){
     *    Console.WriteLine(read.GetString(1));
     * }
     * reader的GetString,Getint32等方法只接受束和参数,也就是序号,用GetOrdinal方法根据列名动态得到序号
     * 
     */
    namespace _4ADO.NET详解
    {
        class Program
        {
            static void Main(string[] args)
            {
                string dataDir = AppDomain.CurrentDomain.BaseDirectory;
                if (dataDir.EndsWith(@"\bin\Debug\")
                    || dataDir.EndsWith(@"\bin\Release\"))
                {
                    dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                    AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
                }
    
    
                //SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS.AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True");
                //SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS.AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True");
                //using进行连接析放
                /*using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net传智播客\第五季ADO.NET\4ADO.NET详解\4ADO.NET详解\Database1.mdf;Integrated Security=True;User Instance=True")) 
                {
                    conn.Open(); //打开链接
                    using (SqlCommand cmd = conn.CreateCommand()) 
                    {
                        cmd.CommandText = "Insert into MyTable(Name) values('abc')";
                        cmd.ExecuteNonQuery();
                        Console.WriteLine("插入成功");
                    }
                }*/
    
                //以下进行数据读取
                /*
                using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net传智播客\第五季ADO.NET\4ADO.NET详解\4ADO.NET详解\Database1.mdf;Integrated Security=True;User Instance=True"))
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand()) {
                        cmd.CommandText = "select * FROM T_User";
                        //创建一个读取的字符, cmd.ExecuteReader进行读取操作
                        using (SqlDataReader reader = cmd.ExecuteReader()) 
                        {
                            //只能逐行向前处理,无法回头,无法往前跳着走
                            while (reader.Read()) {
                                string username = reader.GetString(reader.GetOrdinal("UserName"));
                                //操,用reader.GetInt32还提示类型转换不行,非得用Convert.ToInt32才行 
                                //int id = reader.GetInt32(reader.GetOrdinal("Id"));
                                //不对,这里也是错误的,刚才没看清楚
                                //int id = Convert.ToInt32(reader.GetOrdinal("Id"));
                                
                                //数据类型还真的很严格哈
                                long id = reader.GetInt64(0);
                                //总算试出来了,因为ID为Int64的,所以只能用GetInt64来读取
                                
                                string passwd = reader.GetString(reader.GetOrdinal("Password"));
                                Console.WriteLine("ID={0},UserName={1},Password={2}", id, username, passwd);
                            }
                        }
                    }
                }
                Console.WriteLine("数据库链接成功");
                }*/
                
    
                //登陆操作
                /*Console.WriteLine("请输入用户名:");
                string username = Console.ReadLine();
                Console.WriteLine("请输入密码:");
                string password = Console.ReadLine();
                using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net传智播客\第五季ADO.NET\4ADO.NET详解\4ADO.NET详解\Database1.mdf;Integrated Security=True;User Instance=True"))
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand()) 
                    {
                        cmd.CommandText = "select * FROM T_User WHERE UserName='"+username+"'";
                        //先到表中查用户输入的用户名对应的信息是否存在
                        using (SqlDataReader reader = cmd.ExecuteReader()) 
                        {
                            if (reader.Read())
                            {
                                //用户存在
                                string pass = reader.GetString(reader.GetOrdinal("Password"));
                                //比较数据库中记录的密码和用户输入的密码是否一致
                                if (pass == password)
                                {
                                    Console.WriteLine("登陆成功!");
                                }
                                else {
                                    Console.WriteLine("密码错误!");
                                }
                            }
                            else {//Read返回false,就是没有查找这个用户名
                                Console.WriteLine("用户不存在!");
                            }
                        }
                    }
                }*/
    
                SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MyProjects\C#net传智播客\第五季ADO.NET\4ADO.NET详解\4ADO.NET详解\Database1.mdf;Integrated Security=True;User Instance=True");
                //....
                conn.Close(); //关闭链接
                conn.Close(); //关闭链接
                conn.Open();  //但关闭后还可以打开的
                conn.Dispose(); //释放资源,
                //conn.Open();    //Disponse以后就不能在open了,资源已经被释放了
                //为什么用using,close: 关闭以后还能打开.
                //Disponse:直接销毁,不能再次使用.
                //using在出了作用域以后调用Disponse,SqlConnection. FileStream等的Disponse内部都会做这样的判断
                //判断有没有close,如果没有close就先close再Disponse
                
                Console.ReadKey();
    
            }
        }
    }
    

      

  • 相关阅读:
    大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
    大数据学习系列(7)-- hadoop集群搭建
    .NET的DTO映射工具 AutoMapper
    大数据学习系列(6)-- zookeeper集群搭建
    大数据学习系列(5)-- 局域网yum仓库搭建
    大数据学习系列(4)-- shell编程
    大数据学习系列(3)-- 文件权限的操作
    大数据学习系列(2)-- IP网段的计算和划分
    大数据学习系列(1)-- linux之文件系统结构介绍
    MySQL之开启远程连接
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2376439.html
Copyright © 2011-2022 走看看