C#语言和数据库技术基础学习小结

1


第一个 C#程序

一..NET 是 Microsoft.NET 的简称,是基于 Windows 

二.Program.cs:该文件是项目的启动文件,在该文件中

定义项目的启动入口,即 Main()方法。在 C#中,程序

源文件以.cs 作为扩展名。

三.HelloWorld.exe:这个文件位于 bin\Debug 目录下,

是项目编译后的可执行文件,可以直接运行。

四.C#关键字

1.namespace 关键字:namespace(命名空间)是 C#

中组织代码的方式,它的作用类似于 Java 中的 package

(包) 这样我们就可以把密切相关的一些代码放在同,

一个命名空间中,大大提高管理和使用的效率。

2.using 关键字:

使用 Using 关键在来引用其他命名空间。

3.class 关键字:

不要求类名必须与源文件的名字一样。

4.Main()方法:是程序运行的入口

5.关键代码:

Console.WriteLine();

//从控制台输出内容

Console.ReadLine();

五.C#中数据类型

//从控制台输入

1.整型:int。2.浮点型:float。3.双精度型:double。

4.字符串:string。5.布尔型:bool。

六.C#中变量命名的规则:

1.组成: 个英文字母52(A-Z、 、 个数字a-z) 10(0-9)、

下划线(_),除此之外不能包含其他字符。

2.开头:只能以字母或下划线开头。

3.不能使用的:不能使用 C#中的关键字。

七.常用的输出方法有两个:

1.Console.WriteLine(),输出后换行

2.Console.Write(),输出后不换行

2

一.switch 结构:

C#语法快速热身

switch (int/char/string 表达式)

{

Case 常量表达式 1:

语句 1;

break; //必须有

}

二.一维数组:

数据类型[ ]

数组名;

//创建一个含有

//省略数组长度

//省略 new 关键

1.Int[ ] array=new int[5]{0,1,2,3,4,};

五个整型数组的数组

2.int[ ] arra1=new int[] { 0,1,2,3,4};

3.int[ ] arra2={0,1,2,3,4};

三.通过数组的 Length 属性,可以获得数组长度,通常

会用它来作为循环终止条件

语法:数组名.Length;

同 Java 一样,访问数组的元素使用的形式如下,下标

从 开始,C#中我们也把下标叫做索引。数组名[下标]

四.foreach 循环:

each 是每个的意思, foreach 结构用于遍历一个数据

集(如数组)的每一项,需要设置一个标识符(变量)

语法:

Foreach(类型 元素 in 集合或者数组)

代码块

语法中的“元素”是一个只读变量

五.循环应用的区别如下:

1.while 循环是先判断条件表达式是否成立。若成立则

实行循环体;否则结束循环

2.do-while 循环先执行一次循环体再判断条件表达是

否成立。若成立则继续循环,否则结束循环

3.for 循环必须使用整型变量做循环计算器,通过条件

表达式限定计数器变量值来控制循环

4.foreach()自动遍历给定集合的所有值

六.冒泡排序算法:

1.N 个数字来排队,两两相比小靠前

2.外层循环 N-1,内层循环 N-1-i;

3.如果要降序排序,只要把程序中的大于号换成小于

号就行了

3

使用属性升级 MyBank

一.访问修饰符:访问修饰符是用来修饰类成员字段和

方法的符号,依次限定类成员的可访问级别

private(私有的)

如果将类的成员(变量或者方法)声明为 public,就

表示这些成员可以被其他类访问。如果使用 private 

定类成员的访问权限,那么这些类成员就只能在该类

里面使用,其他类对它们没有访问权限

如果将某个字段或者方法声明为 public,就表示其他

类可以访问这个字段和方法;如果声明为 private,那

么该字段或者方法只能在本类中使用,其他类不能访

二.C#中的访问修饰符:

1.public 不受任何限制访问级别最高

2.private 只有类的内部可以使用访问级别最低

注:如果在成员定义之钱没有制定访问修饰符,那么

这个类成员的访问权限默认为 internal,它只能在本项

目内访问

三.this 关键字:

this 是指当前对象本身,通过 this 可以引用当前类的

成员变量和方法,使用 this 关键字可以解决成员变量

和局部变量名称冲突问题

四.用属性实现字段分装:

1.C#的属性:

如果要访问类中的字段,需要通过 get 和 set 访问器实

现,这种结合了字段和方法的实现方式我们成为属性

(property)。

2.get 访问器用来返回相应的私有字段的值,get 访问器

与方法相似,必须用 return 语句返回字段的值

3.set 访问器用来设定希相应的私有字段的值,set 访

问器类似于返回类型为 void 的方法,它使用一个隐含

的输入参数 value

4.属性的数据类型:

定义类中的一个属性是,属性的数据类型必须与它所

访问的字段类型一致

5.属性的访问类型:

只读属性:只包含 get 访问器

只写属性:值包含 set 访问器

读写属性,包含 get 和 set 访问器

五.编程规范:

1.在为类的私有字段命名时,要以下划线“_”开头,

随后出现的英文字母采用 Camel 命名法,即以第一个

单词的首字母小写,如果字段由多个单词组成,其后

单词的首字母大写

2.在为类的属性命名时,采用 Pascal 命名法。即组成

属性名称的多个单词的首字母要大写

3.封装字段的快捷键是:Ctrl+R+E

六.封装的优点:

1.避免使用非法数据赋值

2.保证数据的完整性

3.避免内部发生修改时,导致整个程序的修改

六.按引用传递参数:

要想使参数按引用传递,需要使用 ref 关键字来修饰

参数

4

1.bool Equals(string

深入 C#的 String 

value):比较一个字符串与另一个

一.常用的字符串处理方法

字符串 value 的值是否相等,如果二者相等返回 true,

如果不相等返回 false,该方法的作用与运算符“==”

相同

2.int Compare(string str A ,string str B):比较两个字符串

的大小关系,返回一个整数,如果 str A 小于 str B,返

回值小于 0,如果 str A 等于 str B,返回值为 0,如果

str A 大于 str B,返回值大于 0

3.int IndexOf(string value):获取指定的 value 字符串在

当前字符串中第一个匹配项的位置,如果找到了 value,

就返回它的位置,如果没有找到就返回-1.

4.int

LastIndexOf(string

value):获取指定的字符串

value 在当前字符串字符串中最后一个匹配项的位置,

如果找到了 value,就返回它的位置,如果没有找到,

就返回-1.

5.string Join(string

separator, string[] value):把字符串

数组 value 中的每个字符串用指定的分割符 separator

连接,返回连接后字符串

6.string[] Split(char

7.string

8.string

9.string

10.string

separator): 用 制 定 的 分 割 符

separator 分割字符串,返回分割后的字符串数组

Substring(int startdex, int length):从制定的位

ToLower():获取字符串的小写形式

ToUpper():获取字符串的大写形式

Trim():去掉字符串前后两端多余的空格

置 startIndex 开始检索长度为 length 的子字符串

二.运算符==和 String 类方法 Equals()的区别如下:

1.==通常用来比较 int,double 等数值类型的数据是否

相等

2.Equals()通常用来比较两个对象的值是否相等

三.“”和 String.Empty 的区别如下:

1.“”为 String 对象分配一个长度为零的储存空间

2.String.Empty 不会为对象分配储存空间

四.Foramt 格式化:

String myString=String.Format(“格式字符串” 参数列

表);

五.格式化数值结果表:

C:货币格式

D:十进制格式

F:小数点后的位数固定

N:用逗号(,)隔开的数字

P:百分比计数法

X:十六进制格式

五.简单的类型转换:

1.隐式类型转换

2.显示类型转换

六.数值类型与字符串之间的转换

1.字符串转换为数值型:

控制台接收整数:

int.Parse(Console.ReadLine());

字符串转换为整型的代码:

Int.Parse(string);

字符串转换为单精度浮点型的代码:

float.Parse(string);

字符串转换为双精度浮点型:

Double.Parse(string);

2.数值型转换为字符串:

6

程序数据集散地:数据库

一.使用数据库的必要性:

1.可以结构化存储大量的数据信息,方便用户进行有

效的检索和访问

2.可以有效地保持数据信息的一致性,完整性,降低

数据冗余

3.可以满足应用的共享和安全方面的要求

4.数据库技术能够方便智能化地分析,产生新的有用

信息

二.数据库的基本概念:

1.实体:是所有客观存在的,可以被描述事物,这些

都被称为实体

2.记录:每一“行”实际上对应一个实体,这样的一

行,在数据库中,通常叫做一条记录

3.表格中的每一“列” 如编号,,姓名,年龄,民族等,

在数据库中,通常叫做“列”,也可称之为“字段”

三.数据库管理系统和数据库系统

1.数据库管理系统、DBMS 是一种系统软件,由一个

互相关联的数据集合和一组访问数据的程序构成。数

据库管理系统的主要功能是维护数据库,并有效的访

问数据库中各个部分的数据。

2.数据库系统、DBS、是一个实际可运行的系统,可以

对系统提供的数据进行存储,维护和应用,它是有存

储介质,处理对象和管理系统共同组成的集合体,通

常有软件、数据库和数据管理员组成

3.数据库管理员、DBA 在数据库系统中负责创建,监

控和维护整个数据库,使数据能被有权使用的人有效

使用

四.数据冗余和数据完整性

1.在数据库系统中,数据重复的现象就是数据冗余

2.数据的完整性是指数据库的准确性

五.数据库按照用途可以划分为如下两种

1.系统数据库 2.用户数据库

系统数据库是管理和维护 SQL

六.数据库操作权限:

1.db_backupoperator 权限可以备份数据库

2.db_datareader 可以读取数据库中的数据

3.db_denydatareader 不允许读取数据

七.创建数据库

1.数据库文件:一个数据库可以有一个后多个数据库

文件,一个数据库文件只属于一个数据库,当有多个

数数据库文件时,有一个文件被定义为主数据库文件,

主数据库文件的扩展名为.mdf,它用来存储数据库的

启动信息数据。一个数据库只能有一个主数据库文件,

其他数据库文件被称为次数据库文件。

Server 所必须的数据

库,用户数据库是用户自己建立的数据库

2.事物日志文件:事物日志文件用来记录数据库的更

新情况,在对数据库进行操作的时候,数据库中内容

更改的操作信息都会记录在此文件中,事物日志文件

的文件扩展名为.ldf,一个数据库可以有一个或多个事

物日志文件

3.文件组:类似于文件夹,文件组主要用于分配磁盘

空间并进行管理,每个文件组有一个组名,与数据库

文件一样,文件组也分为主文件组和此文件组

八.数据库关注选项:

1.兼容级别 2.数据库为只读 3.访问限制 4.自动关闭 5.

自动收缩

九.数据库的管理和维护

1.分离和附加数据库:移动数据库分亮不进行,首先

是分离数据库,然后是附加数据库

2.备份和还原数据库:

四种数据库备份方式:1.完全备份 2.差异备份 3.事物

日志备份 4.文件和文件组备份

7

一.数据完整性

用表组织数据

1.实体完整性约束:要求表中的每一行数据都反应不

同的实体,不能存在相同的数据行,通过索引、唯一

约束、主键约束或标识列属性,可以实现表的实体完

整性

2.域完整性约束:域完整性指的是给定列输入的有效

性,通过限制数据类型、检查约束、输入格式、外键

约束,默认值、非空约束等多种方法,可以实现表的

完整性

3.引用完整性约束:在输入或删除数据行时,引用完

整性约束来保持表之间已定义的关系

4.自定义完整性约束:

二.主键和外键

1.主键:需要一个列,这个列的值用来标识表中的每

一行,用于强制表的实体完整性,这样的列定义为表

的主键,一个表只能有一个主键

2.外键:外键用来强制引用完整性,一个表可以有多

个外键

三.确定列的数据类型:1.二进制数据类型 2.文本数据

类型 3.日期和数据类型 4.数字数据类型 5.货币数据类

型 6.bit 数据类型

8

操纵语言

用 SQL 语句操作数据

一.SQL 的组成:1.DML:数据操作语言,也成为数据

2.DDL:数据定义语言 3.DQL 数据查询语言 4.DCL 数据

控制语言

二.SQL 中的预算符

1.算数运算符 2.赋值运算符 3. 比较运算符 4. 逻辑运

算符

三.使用 T_SQL 插入数据

1.使用 INSERT 插入数据:

语法:INSERT

列表 )

2.一次插入多行数据:通过 INSERT SELECT 语句将现

有表中的数据添加到已存在的表中

例:INSET INTO AddressList (姓名、地址、电子邮件)

SELECT SName, SAdress, SEmail

FROM Students

3.通过 SELECT INTO 语句将现有表中的数据添加到新

表中:

语法:SELECT

增长量)AS 列名

IDENTITY(数据类型,标识种子,标识

[INTO]

表名[列名列表] VALUES

(值

INTO 新表

FROM 原始表

4.通过 UNION 关键字合并数据进行插入

5.使用 UPDATE 更新数据:

语法:UPDATE 表名 SET 列名 更新值 [WHERE 更新

条件]

6.使用 T_SQL 删除数据

语法:DELETE

[FROM]

表名 [WHERE<删除条件>]

7.使用 TRUNCATE TABLE 删除数据

9

语法:

SELECT <列名>

FROM<表名>

数据查询基础

一.使用 SELECT 语句进行查询

[WHERE<查询条件表达式>]

[ORDER BY<排序的列名>[ASC 或 DESC]]

1. 查询所有的数据行和列:

SELECT * FROM Students

2. 查询部分行或列

3. 在查询中使用列的别名

4. 查询空值:在 SQL 语句中采用“IS NULL”或者“IS

NOT NULL”来判断是否为空:

SELECT

IS NULL

5. 在查询中使用常量列

6. 查询返回限制的行数

二.查询排序

如果需要按照一定顺序排列查询语句选中的行,则

需要使用 ORDER

BY 子句,并且排序可以是升序

(ASC)或者降序(DESC)如果不指定 ASC 或者 DESC,

记录集按默认 ASC 升序排序

三.在查询中使用函数

1.字符串函数:

CHARINDEX:用来寻找指定的字符串在另一个字符

串中的起始位置

LEN:返回传递给它的字符串长度

RIGHT:从字符串右边返回指定数目的字符,右边去字

REPLACE:替换一个字符串中的字符

2.日期函数:

GETDATE:取得当前的系统日期

DATEADD:将指定的数值添加到指定的日期部分后的

SName

FROM Students

WHERE SEmail

日期

DATEDIFF:两个日期之间的指定日期部分间隔

DATENAME:日期中指定部分的字符串形式

DATEPART:日期中指定日期部分的整数形式

3.数学函数:

RAND:返回从 0 到 之间的随机 float 

CEILING:向上取整,取大于或等于指定数值,表达式

的最小整数、大于它的最小整数

FLOOR:向下取整数,取小于或等于指定表达式的最

大整数、小于它的最大整数

ROUND:将数值表达式四舍五入为指定精度

4.系统函数:

CINVERT:用来转变数据类型

第 10 

来进行

模糊查询和聚合函数

一.模糊查询:模糊查询可以使用 LIKE 关键字,通配符

1.通配符:通配符是一类字符,它可以代替一个或多

个真正的字符,查找信息时作为替代字符出现

-:一个字符

CS、Cd 

示例:A LIKE

’C_’,则符合条件的 A 

%:任意长度的字符串

如 CONST、COKE 

B LIKE ‘CO%’,则符合条件的 B

C LIKE ’WO[1-2]’,

D LIKE

[]:括号中所指定范围内的一个字符

则符合条件的 如 9W01 或 9W02

[^]:不在括号中所指定范围内的任意一个字符

二.使用 BETWEEN:在某个范围内进行查询:

‘9W0[^1-2]’,则符合条件的 D 如 9W03 或 9W07 

例:查询分数在 60(含)到 80(含)之间的信息:

SELECT *FROM

Score BETWEEN 60 AND 80

三.使用 IN 在列举值内进行查询:

例: 查询北京、广州、或者上海的学生姓名:

SELECT SName AS 学生姓名 FORM Students WHERE

SAdress

IN(‘北京’,’广州’,’上海’)ORDER BY SAdress

四.聚合函数:

1.SUM():返回表达式中所有数值的总和

2.AVG():返回表达式中所有数值的平均值

3.MAX():返回表达式中的最大值

4.MIN():返回表达式中的最小值

5.COUNT():返回提供的组或记录集中的计数,另外也

可以使用星号(*)作为 COUNT 的表达式

第 11 

联接查询和分组查询

一.使用 group by 进行分组查询

二.使用 having 子句进行分组筛选

group by 后面一般跟字段

--------------------------------------------------

----having 分组后筛选 、where 查询后筛选

--where 子句:用来筛选 from 子句中指定的操作所产生

的行

--group by 子句:用来分组 where 子句的输出

--having 子句:用来从分组的结果中筛选行

--------------------------------------------------

--------总结(内联查询)

三.多表联接查询:

--1.inner join .... on

select a 表.列名,b 表.列名

from a 表 inner join b 

on a 表.主键=b 表.外键

where 条件 and ......

--2.where

select a 表.列名,b 表.列名

from a 表,b 表

where a 表.主键=b 表.外键 and .......

--交叉查询 cross join

--完整联接 Full join

--总结

--左外联 left join ...on(会把 left 左边表的数据全部显

示)null

--右外联 right join ...on(会把 rigth 左边表的数据全部

显示)null

第 14 

使用 ADO.NET 访问数据库

一.ADO.NET 的主要组件:

1..NET Framework 数据库提供程序:专门为数据处理

以及快速地只进、只读访问数据而设计的组建。

2.DataSet(数据集):是专门为独立于任何数据源的数

据访问而设计的

二..NET Framework 数据提供程序的四个核心对象:

1.Connection:建立与特定的数据源的连接

2.Command:对数据源执行命令

3.DataReader:从数据源中读取只进且只读的数据流

4.DataAdapter:用数据源填充 DataSet 并解析更新

总结:

一.查询单个值:

1.创建连接字符串

string

str="server=.;database=

名;uid=sa;pwd=sa";

2.创建 connection 对象

SqlConnection connection=new SqlConnection(str);

3.打开数据库连接

connection.Open();

4.创建 Sql 语句

string sql="";

5.创建 command 对象

SqlCommand

SqlCommand(sql,connection);

6.执行 sql 命令

int

result=Convert.ToInt32(command.ExecuteScalar());

(转换)

7.关闭数据库连接

connection.Close();

二.查询若干条记录:

需要使用 Command 对象的 ExecuteReader()方法,步

骤如下:

1.创建 Connection 对象

2.拼写 SQL 查询语句

command=new

3.使用 SQL 语句和 Connection 对象创建 Command 

4.打开数据库连接,调用 Connection 对象的 Open()方

5.调用 Command 对象的 ExecuteReader()方法,返回一

个 DataReader 对象

6.在循环中使用 DataReader 对象的 Read()方法,逐行

读取记录。如果读到记录则返回 true,否则返回 false。

7.使用(type)dataReader[列名或索引]的方式读取这一

行中某一列的值

8.调用 DataReader 对象的 Close()方法,关闭 DataReader

对象

9.操作完成后关闭数据库连接,调用 Connection 对象

的 Close()方法

三.数据更新操作:

对数据库执行数据更新操作时(包括增加,修改,删

除数据)都使用 Command 对象的 ExecuteNonQuery()

方法,步骤如下:

1.创建 Connection 对象

2.拼写 SQL 增删改语句

3.使用 SQL 语句和 Connection 对象创建 Command 

4.打开数据库连接,调用 Connection 对象的 Open()方

5.调用 Command 对象的 ExecuteNonQuery()方法执行

命令,返回数据库中受影响的行数

6.操作完成后关闭数据库连接,调用 Connection 对象

的 Close()方法

Command 对象的三种方法的对比如下所示:

ExecuteScalar()方法:执行查询操作,并返回结果集中

的第一行和第一列

ExecuteReader()方法:执行查询操作,返回 DataReader

对象

ExcutenNonQuery()方法:执行添加、修改、删除操作、

返回受影响的行数

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值