C#可视化程序设计课堂笔记
综合笔记

C#可视化程序设计课堂笔记

年份
2020
阅读
—

image.png

C#可视化程序设计笔记

一、初识类和对象

  1. 类与对象:

    1. 某种可为人所感知的物质;

    2. 思维,感受或动作所作用的物质或精神体。

    3. 类:是对事物的一种抽象定义,将抽象之后的特征和行为有机结合便构成了类(个人理解就是种类吧,比如人就是一个种类,而将人具体描述出来,也就是实例化了一个人)。

    4. 对象:根据《韦氏大学英语词典》的释义:

    5. 两者关系:类是一系列对象的抽象,提取了这一系列对象的共同特征和共同行为。

    6. 总结:类是对对象的描述,是创建对象的“模板”,是对对象的抽象;对象表示现实世界中某个具体的事物,是类的一个实例,是类实例化的结果。

  2. C#类定义:

    1. 语法:

    [访问修饰符] class 类名{
        类的字段声明;
        类的属性声明;
        类的方法声明;
    }
    1. 举例:

    class Product{
        public string name;
        public string category;
        public double price;
        public int stock;
        public string descrition;
        // 定义字段与变量类似,需要指定类型与字段名,public是访问修饰符,控制类成员访问权限。public为公开的意思,表示在任何地方都能访问到。
        public void ShowInfo(){
            Console.WriteLine("产品信息");
            Console.WriteLine("=======================");
            Console.WriteLine("产品名称:{0}",name);
            Console.WriteLine("产品类别:{0}",category);
            Console.WriteLine("产品价格:{0}元",price);
            Console.WriteLine("产品描述:{0}",description);
        }
    }
  3. 对象的操作

  4. a,实例化对象:

    类名 对象名 = new 类名();
    Product phone = new Product();

    b,访问类的字段:

    Console.WriteLine(phone.name);
    //在类的内部访问字段时,直接通过字段名访问。
    //如果在外部首先定义字段时需要设置Public修饰符,然后实例化对象,通过对象名和“.”运算符才允许在类的外部访问。

    c,调用类的方法:

    phone.ShowInfo();
    //实例化对象后,可通过对象名.方法名(参数)进行调用
  5. 命名空间

    1. 导入命名空间

    using Company.Development;
    namespace T1Demo{
        class Program{
            static void Main(String[] args){
                Employee emp = new Employee();
            }
        }
    }
    1. 使用完全限定名访问

    namespace T2Demo{
        class Program{
            static void Main(String[] args){
                Company.Development.Employee emp1 = new Company.Development.Employee();
            }
        }
    }
    1. 定义:相当于文件夹,但命名空间是一种逻辑组合,C#中,命名空间有两种形式:1,.NET框架定义好的系统命名空间,另一种是开发中自定义的命名空间。

    2. 自定义命名空间举例(命名空间也可以嵌套):

    //某公司
    namespace Company{
        Class Employee{
            
        }
        // 研发部
        namespace Development{
            //研发部员工类
            class Employee{
                
            }
        }
        // 人事部
        namespace Personel{
            //人事部员工类
            class Employee{
                
            }
        }
    }
    1. 常用的系统命名空间:

      命名空间说明
      System根命名空间,提供最基本的操作
      System.Data处理数据存取和管理
      System.IO管理对文件,流的同步和异步访问
      System.Windows可视化编程的基于窗体的处理
      System.Collections包含对集合进行处理的接口和类
    2. 命名空间的使用:

ADO.NET基础

1,Connection链接

using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace T2practice2{
    class Program{
        static void Main(string[] args){
            //定义数据库链接字符串
            string connString = "server=.;database=GameBoxDB;uid=lanol;pwd=www.lanol.cn";
        }
    }
}


2,使用Command执行

   class Program{
       static void Main(string[] args){
           //定义数据库链接字符串
               string connString = "server=.;database=GameBoxDB;uid=lanol;pwd=www.lanol.cn";
               // 创建链接对象
               SqlConnection conn = new SqlConnection(connString);
               //打开数据库链接
               conn.open();
               //检测数据库是否打开
               if (conn.State == ConnectionState.open){
                   Console.WriteLine("+---------------+");
                   Console.WriteLine("|1,新增|");
                   Console.WriteLine("|2,修改|");
                   Console.WriteLine("|3,删除|");
                   string index = Console.ReadLine();
                   string sql = "";
                   String loginid ="";
                   String loginpwd="";
                   switch (index){
                       case "1":
                           Console.WriteLine("请输入账号");
                           loginid = Console.ReadLine();
                           Console.WriteLine("请输入密码");
                           loginpwd = Console.ReadLine();
                           Console.WriteLine("请输入姓名");
                           String name = Console.ReadLine();
                           sql = string.Format("insert into Admins Values('{0}','{1}','{2}')"),loginid,loginpwd,name);
                           break;
                       case "2":
                           Console.WriteLine("请输入账号");
                           loginid = Console.ReadLine();
                           Console.WriteLine("请输入密码");
                           loginpwd = Console.ReadLine();
                           Console.WriteLine("请输入新密码");
                           String newpwd = Console.ReadLine();
                           sql = string.Format("update admins set loginpwd = '{0}' where loginid='{1}' and loginpwd='{2}'"),newpwd,loginid,loginpwd);
                           break;
                       case "3":
                           Console.WriteLine("请输入账号");
                           loginid = Console.ReadLine();
                           Console.WriteLine("请输入密码");
                           loginpwd = Console.ReadLine();
                           Console.WriteLine("请输入姓名");
                           String name = Console.ReadLine();
                           sql = string.Format("delete from Admins where loginid='{0}' and loginpwd='{1}'"),loginid,loginpwd,name);
                           break;
                   }
                   SqlCommand cursor = new SqlCommand(sql,conn);
                   if (cursor.ExecuteNonQuery()>0){
                       Console.WriteLine("成功");
                   }else{
                       Console.WriteLine("错误")
                   }
               }
           conn.Close();
       }
   }

3,使用DataReader读取

class Program{
       static void Main(string[] args){
           //定义数据库链接字符串
            string connString = "server=.;database=GameBoxDB;uid=lanol;pwd=www.lanol.cn";
            // 创建链接对象
            SqlConnection conn = new SqlConnection(connString);
         //打开数据库链接
            conn.open();
         //检测数据库是否打开
            if (conn.State == ConnectionState.open){
                string sql = "select id,loginid,name from Admins";
                //创建Command对象
                SqlDataReader reader = cmd.ExecuteReader();
                Console.ReadLine("编号	账号	密码	姓名");
                while(reader.Read()){
                    string id = reader["ID"].ToString();
                    string loginid = reader["loginid"].ToString();
                    string loginpwd = reader["loginpwd"].ToString();
                    string name = reader["name"].ToString();
                    Console.WriteLine("{0}	{1}	{2}	{3}",id,loginid,loginpwd,name);
                }
                reader.Close();
            }
       }

MarkDown:C#可视化笔记

!!! # C#可视化程序设计笔记 ## 一、初识类和对象
  1. 类与对象:
    1. 类:是对事物的一种抽象定义,将抽象之后的特征和行为有机结合便构成了类(个人理解就是种类吧,比如人就是一个种类,而将人具体描述出来,也就是实例化了一个人)。
    2. 对象:根据《韦氏大学英语词典》的释义:
      1. 某种可为人所感知的物质;
      2. 思维,感受或动作所作用的物质或精神体。
    3. 两者关系:类是一系列对象的抽象,提取了这一系列对象的共同特征和共同行为。
    4. 总结:类是对对象的描述,是创建对象的“模板”,是对对象的抽象;对象表示现实世界中某个具体的事物,是类的一个实例,是类实例化的结果。
  2. C#类定义:
    1. 语法:
[访问修饰符] class 类名{
    类的字段声明;
    类的属性声明;
    类的方法声明;
}
  1. 举例:
class Product{
    public string name;
    public string category;
    public double price;
    public int stock;
    public string descrition;
    // 定义字段与变量类似,需要指定类型与字段名,public是访问修饰符,控制类成员访问权限。public为公开的意思,表示在任何地方都能访问到。
    public void ShowInfo(){
        Console.WriteLine("产品信息");
        Console.WriteLine("=======================");
        Console.WriteLine("产品名称:{0}",name);
        Console.WriteLine("产品类别:{0}",category);
        Console.WriteLine("产品价格:{0}元",price);
        Console.WriteLine("产品描述:{0}",description);
    }
}
  1. 对象的操作
    1. 实例化对象:
类名 对象名 = new 类名();
Product phone = new Product();
  1. 访问类的字段:
Console.WriteLine(phone.name);
//在类的内部访问字段时,直接通过字段名访问。
//如果在外部首先定义字段时需要设置Public修饰符,然后实例化对象,通过对象名和“.”运算符才允许在类的外部访问。
  1. 调用类的方法:
phone.ShowInfo();
//实例化对象后,可通过对象名.方法名(参数)进行调用
  1. 命名空间
    1. 定义:相当于文件夹,但命名空间是一种逻辑组合,C#中,命名空间有两种形式:1,.NET框架定义好的系统命名空间,另一种是开发中自定义的命名空间。
    2. 自定义命名空间举例(命名空间也可以嵌套):
//某公司
namespace Company{
    Class Employee{
        
    }
    // 研发部
    namespace Development{
        //研发部员工类
        class Employee{
            
        }
    }
    // 人事部
    namespace Personel{
        //人事部员工类
        class Employee{
            
        }
    }
}
  1. 常用的系统命名空间:
    | 命名空间 | 说明 |
    | --- | --- |
    | System | 根命名空间,提供最基本的操作 |
    | System.Data | 处理数据存取和管理 |
    | System.IO | 管理对文件,流的同步和异步访问 |
    | System.Windows | 可视化编程的基于窗体的处理 |
    | System.Collections | 包含对集合进行处理的接口和类 |

  2. 命名空间的使用:

    1. 导入命名空间
using Company.Development;
namespace T1Demo{
    class Program{
        static void Main(String[] args){
            Employee emp = new Employee();
        }
    }
}
  1. 使用完全限定名访问
namespace T2Demo{
    class Program{
        static void Main(String[] args){
            Company.Development.Employee emp1 = new Company.Development.Employee();
        }
    }
}

二、ADO.NET基础

  1. Connection链接
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace T2practice2{
    class Program{
        static void Main(string[] args){
            //定义数据库链接字符串
            string connString = "server=.;database=GameBoxDB;uid=lanol;pwd=www.lanol.cn";
            // 创建链接对象
            SqlConnection conn = new SqlConnection(connString);
            //打开数据库链接
            conn.open();
            //检测数据库是否打开
            if (conn.State == ConnectionState.open){
                Console.WriteLine("Ok")
            }
            //关闭数据库链接
            conn.close();
            if(conn.State == ConnectionState.Close){
                Console.WriteLine("ok")
            }
        }
    }
}
  1. 使用Command执行
class Program
    {
        static void Main(string[] args)
        {
            //定义数据库链接字符串
            string connString = "server=.;database=GameBoxDB;uid=lanol;pwd=www.lanol.cn";
            // 创建链接对象
            SqlConnection conn = new SqlConnection(connString);
            //打开数据库链接
            conn.open();
            //检测数据库是否打开
            if (conn.State == ConnectionState.open)
            {
                Console.WriteLine("+---------------+");
                Console.WriteLine("|1,新增|");
                Console.WriteLine("|2,修改|");
                Console.WriteLine("|3,删除|");
                string index = Console.ReadLine();
                string sql = "";
                String loginid = "";
                String loginpwd = "";
                switch (index)
                {
                    case "1":
                        Console.WriteLine("请输入账号");
                        loginid = Console.ReadLine();
                        Console.WriteLine("请输入密码");
                        loginpwd = Console.ReadLine();
                        Console.WriteLine("请输入姓名");
                        String name = Console.ReadLine();
                        sql = string.Format("insert into Admins Values('{0}','{1}','{2}')"),loginid,loginpwd,name);
                        break;
                    case "2":
                        Console.WriteLine("请输入账号");
                        loginid = Console.ReadLine();
                        Console.WriteLine("请输入密码");
                        loginpwd = Console.ReadLine();
                        Console.WriteLine("请输入新密码");
                        String newpwd = Console.ReadLine();
                        sql = string.Format("update admins set loginpwd = '{0}' where loginid='{1}' and loginpwd='{2}'"),newpwd,loginid,loginpwd);
                        break;
                    case "3":
                        Console.WriteLine("请输入账号");
                        loginid = Console.ReadLine();
                        Console.WriteLine("请输入密码");
                        loginpwd = Console.ReadLine();
                        Console.WriteLine("请输入姓名");
                        String name = Console.ReadLine();
                        sql = string.Format("delete from Admins where loginid='{0}' and loginpwd='{1}'"),loginid,loginpwd,name);
                        break;
                }
                SqlCommand cursor = new SqlCommand(sql, conn);
                if (cmd.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("成功");
                }
                else
                {
                    Console.WriteLine("错误")
                   }
            }
            conn.Close();
        }
    }

3. 使用DataReader读取

```C#
class Program{
    static void Main(string[] args){
        //定义数据库链接字符串
         string connString = "server=.;database=GameBoxDB;uid=lanol;pwd=www.lanol.cn";
         // 创建链接对象
         SqlConnection conn = new SqlConnection(connString);
      //打开数据库链接
         conn.open();
      //检测数据库是否打开
         if (conn.State == ConnectionState.open){
             string sql = "select id,loginid,name from Admins";
             //创建Command对象
             SqlDataReader reader = cmd.ExecuteReader();
             Console.ReadLine("编号\t账号\t密码\t姓名");
             while(reader.Read()){
                 string id = reader["ID"].ToString();
                 string loginid = reader["loginid"].ToString();
                 string loginpwd = reader["loginpwd"].ToString();
                 string name = reader["name"].ToString();
                 Console.WriteLine("{0}\t{1}\t{2}\t{3}",id,loginid,loginpwd,name);
             }
             reader.Close();
         }
    }
}