C#基础整理

C#

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 在同一命名空间内可以访问。

2.C#中的委托是什么?事件是不是一种委托?

委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。事件是一种特殊的委托。

委托是在前台写一个方法A,后台的事件与一个方法B绑定好,让A方法与B的事件对接。

3.类(class)与结构(struct)的异同?

Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的。

4.重写与重载的区别

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同。

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同。

5.泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。

好处是:类型安全和减少装箱、拆箱。提高性能、类型安全和质量,减少重复性的编程任务

6.什么是装箱和拆箱?

从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

7.C# ref与out区别:

1)使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。

2)使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

3)out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

8.面向对象的语言具有封装、继承、多态

String类方法汇总

1.string (char[]) 使用指定的字符串数组构建一个新的string对象

2.int Compare(string a,string b,bool case) 比较字符串a,b,case为true时表示不区分大小写。当a>b返回正数

3. bool EndsWith(string) 确定当前字符串是否以指定的字符串结尾

4. bool StartsWith(string) 确定当前字符串是否以指定的字符串开头

5.int IndexOf() 返回指定的字符或字符串在当前字符串中的位置

6.int LastIndexOf() 返回指定字符或字符串的最后一个匹配项位置

7.string Insert(int,string) 在当前的字符串中插入一个指定的字符串

8.string Replace(string,string) 字符串替换

9.string Remove(int,int) 从指定位置开始删除指定个数的字符

10. ToUpper() ToLower() 字符串大小写转换

11.string SubString(int,int) 返回从指定位置开始指定个数的字符串

12. String.Split(Char[],Int32)

string str = "aaatbbscctdd";

string []strArray = str.Split(new char[]{'t',2});//只切割成2份(result :"aaa" "bbscctdd")

13. 用法一:C# Format函数可按预定的格式显示或打印一个Date变量,如:

Print Format(d, “general date”) 显示:13-2-24 22:27:15

Print Format(d,“short time”) 显示:22:27

用法二:C# Format函数可按给预定的字符串格式赋值:

string xmlTemp = "{0}{2}{3}";

string outXml = string.Format(xmlTemp, "1", "2", "3", 4);

outXml的值为:134

*下面举个例子对个别方法进行说明:

string str1=“Hello";

string srr2="World";

string Upper,str3;

Upper=str1.Upper(); ///将str1转换为大写

str3=str1.Insert(str1.Length,str2); /// str3的内容为HelloWorld

JQuery常用方法

$(”p”).addClass(css中定义的样式类型); 给某个元素添加样式

$(”img”).attr({src:”test.jpg”,alt:”test Image”}); 给某个元素添加属性/值,参数是map

$(”img”).attr(”src”,”test.jpg”); 给某个元素添加属性/值

$(”img”).attr(”title”, function() { return this.src }); 给某个元素添加属性/值

$(”元素名称”).html(); 获得该元素内的内容(元素,文本等)

$(”元素名称”).html(”new stuff”); 给某元素设置内容

$(”元素名称”).removeAttr(”属性名称”) 给某元素删除指定的属性以及该属性的值

$(”元素名称”).removeClass(”class”) 给某元素删除指定的样式

$(”元素名称”).text(); 获得该元素的文本

$(”元素名称”).text(value); 设置该元素的文本值为value

$(”元素名称”).toggleClass(class) 当元素存在参数中的样式的时候取消,如果不存在就设置此样式

$(”input元素名称”).val(); 获取input元素的值

$(”input元素名称”).val(value); 设置input元素的值为value

Manipulation:

$(”元素名称”).after(content); 在匹配元素后面添加内容

$(”元素名称”).append(content); 将content作为元素的内容插入到该元素的后面

$(”元素名称”).appendTo(content); 在content后接元素

$(”元素名称”).before(content); 与after方法相反

$(”元素名称”).clone(布尔表达式) 当布尔表达式为真时,克隆元素(无参时,当作true处理)

$(”元素名称”).empty() 将该元素的内容设置为空

$(”元素名称”).insertAfter(content); 将该元素插入到content之后

$(”元素名称”).insertBefore(content); 将该元素插入到content之前

$(”元素”).prepend(content); 将content作为该元素的一部分,放到该元素的最前面

$(”元素”).prependTo(content); 将该元素作为content的一部分,放content的最前面

$(”元素”).remove(); 删除所有的指定元素

$(”元素”).remove(”exp”); 删除所有含有exp的元素

$(”元素”).wrap(”html”); 用html来包围该元素

$(”元素”).wrap(element); 用element来包围该元素

SQL常用语句

1、说明:创建数据库

Create DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only

4、说明:删除新表

drop table tabname

5、说明:增加一个列

Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

6、说明:添加主键: Alter table tabname add primary key(col)

说明:删除主键: Alter table tabname drop primary key(col)

7、说明:创建索引:create [unique] index idxname on tabname(col….)

删除索引:drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

8、说明:创建视图:create view viewname as select statement

删除视图:drop view viewname

9、说明:几个简单的基本的sql语句

选择:select * from table1 where 范围

插入:inse rt into table1(field1,field2) values(value1,value2)

删除:delete from table1 where 范围

更新:update table1 set field1=value1 where 范围

select * from table1 where field1 like ’%value1%’ 

排序:select * from table1 order by field1,field2 [desc]

总数:select count as totalcount from table1

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1

SQL常用函数

一、字符转换函数

1、ASCII()

返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。

2、CHAR()

将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。

3、LOWER()和UPPER()

LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

4、STR()

把数值型数据转换为字符型数据。

STR ([,length[, ]])

二、去空格函数

1、LTRIM() 把字符串头部的空格去掉。

2、RTRIM() 把字符串尾部的空格去掉。

三、取子串函数

1、left() 

LEFT (, )

返回character_expression 左起 integer_expression 个字符。

2、RIGHT() 

RIGHT (, )

返回character_expression 右起 integer_expression 个字符。

3、SUBSTRING()

SUBSTRING (, , length)

返回从字符串左边第starting_ position 个字符起length个字符的部分。

四、字符串比较函数

1、CHARINDEX()

返回字符串中某个指定的子串出现的开始位置。

CHARINDEX (, )

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。

此函数不能用于TEXT 和IMAGE 数据类型。

五、字符串操作函数

1、REPLICATE()

返回一个重复character_expression 指定次数的字符串。

REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。

2、REVERSE()

将指定的字符串的字符排列顺序颠倒。

REVERSE () 其中character_expression 可以是字符串、常数或一个列的值。

3、REPLACE()

返回被替换了指定子串的字符串。

REPLACE (, , ) 用string_expression3 替换在string_expression1 中的子串string_expression2。

4、SPACE()

返回一个有指定长度的空白字符串。

SPACE () 如果integer_expression 值为负值,则返回NULL 。

5、STUFF()

用另一子串替换字符串指定位置、长度的子串。

STUFF (, , ,)

如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。

如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。

六、数据类型转换函数

1、CAST()

CAST ( AS [ length ])

2、CONVERT()

CONVERT ([ length ],  [, style])

七、统计函数

AVG ( ) -返回的平均价值 

count( ) -返回的行数 

first( ) -返回第一个值 

last( ) -返回最后一个值 

max( ) -返回的最大价值 

min( ) -返回最小的价值 

total( ) -返回的总和

八、数学函数

abs(numeric_expr) 求绝对值

ceiling(numeric_expr) 取大于等于指定值的最小整数

exp(float_expr) 取指数

floor(numeric_expr) 小于等于指定值得最大整数

pi()3.1415926.........

power(numeric_expr,power)返回power次方       

rand([int_expr])随机数产生器

round(numeric_expr,int_expr)安int_expr规定的精度四舍五入

sign(int_expr)根据正数,0,负数,,返回+1,0,-1

sqrt(float_expr)平方根

ADO.net

一、Connection对象 

  Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接。所有Connection对象的基类都是DbConnection类。 

  Connection对象有两个重要属性: 

    (1)ConnectionString:表示用于打开 SQL Server 数据库的字符串; 

    (2)State:表示 Connection 的状态,有Closed和Open两种状态。 

  Connection对象有两个重要方法:

    (1)Open()方法:指示打开数据库;

    (2)Close()方法:指示关闭数据库。

1 SqlConnection connection = new SqlConnection( "server=localhost;database=pubs;uid=sa;pwd=''";);

2  //注意,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")是将当前时间格式化为类似于2008-10-09 00:00:03的形式的字符串

3 Response.Write("时间"+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"当前数据库连接状态是:"+connection.State +"
");

4 connection.Open();

5 Response.Write("时间" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "当前数据库连接状态是:" + connection.State + "
");

6 connection.Close();

7 Response.Write("时间" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "当前数据库连接状态是:" + connection.State + "
");

二、Command对象 

  Command对象也称为数据库命令对象,Command对象主要执行包括添加、删除、修改及查询数据的操作的命令。也可以用来执行存储过程。用于执行存储过程时需要将Command对象的CommandType 属性设置为CommandType.StoredProcedure,默认情况下CommandType 属性为CommandType.Text,表示执行的是普通SQL语句。

  Command主要有三个方法: 

  ExecuteNonQuery():执行一个SQL语句,返回受影响的行数,这个方法主要用于执行对数据库执行增加、更新、删除操作,注意查询的时候不是调用这个方法。

?

OleDbConnection conn = new OleDbConnection();

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

            "Data Source=" + Server.MapPath("person.mdb");

conn.Open();

string strSQL = "insert into grade values(12,'女','小张',78,86,98)";

OleDbCommand Comm = new OleDbCommand(strSQL, conn);

Comm.ExecuteNonQuery();

conn.Close(); 

ExecuteReader ():执行一个查询的SQL语句,返回一个DataReader对象。

?

SqlConnection Conn = new SqlConnection();

Conn.ConnectionString = "server=localhost;database=pubs;uid=sa;pwd=''";

Conn.Open();

SqlCommand Comm = new SqlCommand("select * from Authors", Conn);

SqlDataReader dr = Comm.ExecuteReader();

dg.DataSource = dr;

dg.DataBind();

Conn.Close(); 

   ExecuteScalar ():从数据库检索单个值。这个方法主要用于统计操作。ExecuteScalar ()这个方法是针对SQL语句执行的结果是一行一列的结果集,这个方法只返回查询结果集的第一行第一列。

?

OleDbConnection conn = new OleDbConnection();

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + Server.MapPath("person.mdb");

conn.Open();

string strSQL = "select avg(数学) from grade";

OleDbCommand Comm = new OleDbCommand(strSQL, conn);

double d = (double)Comm.ExecuteScalar();

Message.Text = "所有人数学的平均成绩为:"+d.ToString()+"分";

conn.Close();

三、DataReader对象 

  DataReader对象是一个读取行的只读流的方式,绑定数据时比使用数据集方式性能要高,因为它是只读的,所以如果要对数据库中的数据进行修改就需要借助其它方法将所作的更改保存到数据库。

DataReader对象不能通过直接实例化,必须借助与相关的Command对象来创建实例,例如用SqlCommand的实例的ExecuteReader()方法可以创建SqlDataReader实例。因为DataReader对象读取数据时需要与数据库保持连接,所以在使用完DataReader对象读取完数据之后应该立即调用它的Close()方法关闭,并且还应该关闭与之相关Connection对象。在.net类库中提供了一种方法,在关闭DataReader对象的同时自动关闭掉与之相关的Connection对象,使用这种方法是可以为ExecuteReader()方法指定一个参数,如: SqlDataReader reader =command.ExecuteReader(CommandBehavior.CloseConnection); CommandBehavior是一个枚举,上面使用了CommandBehavior枚举的CloseConnection值,它能在关闭SqlDataReader时关闭相应的SqlConnection对象。

使用 DataReader 检索数据的步骤: 

1、创建 Command 对象 

2、调用 ExecuteReader() 创建 DataReader 对象 

3、使用 DataReader 的 Read() 方法逐行读取数据 

4、读取某列的数据,(type)dataReader[ ] 

5、关闭 DataReader 对象

注意:DataReader 使用后必须关闭

参考代码:

string sql = "SELECT StudentName FROM Student

              WHERE StudentName LIKE '李%'";

SqlCommand command = new SqlCommand(sql, connection);

connection.Open();

SqlDataReader dataReader = command.ExecuteReader();

Console.WriteLine("查询结果:");

while (dataReader.Read())

{

      Console.WriteLine((string)dataReader["StudentName"]);

}

dataReader.Close();

四、DataAdapter对象 

  DataAdapter对象也称之为数据适配器对象,DataAdapter对象利用数据库连接对象(Connection)连接的数据源,使用数据库命令对象(Command)规定的操作从数据源中检索出数据送往数据集对象(DataSet),或者将数据集中经过编辑后的数据送回数据源。 数据适配器将数据填入数据集时调用方法Fill(),语句如下:

  //直接填充表

 dataAdapter1.Fill (dataTable);

 或者

 //填充dataSet11数据集中的"Products"表

 dataAdapter1.Fill (dataSet11, "Products");

  当dataAdapter1调用Fill() 方法时将使用与之相关联的命令组件所指定的 SELECT 语句从数据源中检索行。然后将行中的数据添加到 DataSet 中的DataTable 对象中或者直接填充到DataTable的实例中,如果 DataTable 对象不存在,则自动创建该对象。 当执行上述SELECT语句时,与数据库的连接必须有效,但不需要用语句将连接对象打开。如果调用Fill()方法之前与数据库的连接已经关闭,则将自动打开它以检索数据,执行完毕后再自动将其关闭。如果调用Fill()方法之前连接对象已经打开,则检索后继续保持打开状态。 

五、DataSet对象 

  DataSet对象也称为数据集对象,DataSet对象用于表示那些储存在内存中的数据,它相当于一个内存中的数据库。它可以包括多个DataTable对象及DataView对象。DataSet主要用于管理存储在内存中的数据以及对数据的断开操作。 由于DataSet对象提供了一个离线的数据源,这样减轻了数据库以及网络的负担,在设计程序的时候可以将DataSet对象作为程序的数据源。

六、DataTable对象 

  DataTable 是 ADO.NET 库中的核心对象,就像普通的数据库中的表一样,它也有行和列。它主要包括DataRow和  DataColumn,分别代表行和列。 

  (1) 数据行(DataRow) 

  数据行是给定数据表中的一行数据,或者说是数据表中的一条记录。它可能代表一个学生、一位用户、一张订单或者一件货物的相关数据。DataRow对象的方法提供了对表中数据的插入、删除、更新和查看等功能。提取数据表中的行的语句如下: 

DataRow dr = dt.Rows[n]; 

其中:DataRow代表数据行类;dr是数据行对象;dt代表数据表对象; n代表行的序号(序号从0开始)。 

  (2) 数据列(DataColumn) 

  数据表中的数据列(又称字段)定义了表的数据结构,例如,可以用它确定列中的数据类型和大小,还可以对其他属性进行设置。例如,确定列中的数据是否是只读的、是否是主键、是否允许空值等;还可以让列在一个初始值的基础上自动增殖,增值的步长还可以自行定义。 某列的值需要在数据行的基础上进行。语句如下:

?

string dc = dr.Columns["字段名"].ToString();

或者

string dc = dr.Column[i].ToString();//i表示对应的列索引

 如若想取出数据表(dt)中第3条记录中的“姓名”字段,并将该字段的值放入一输入框(textBox1)中时,语句可以写成: ?

DataRow dRow = dt.Rows[2 ];   // 从数据表提取行

string textBox1.Text=dRow["CompanyName"].ToString();  // 从行中取出字段的值

 一个基本的例子

//实例化Connection对象

SqlConnection connection = new SqlConnection("Data Source=(local);

                           Initial Catalog=数据库名;Persist Security Info=True;User ID=sa;Password=sa");

connection.open();

//要执行查询,则先需要实例化Command对象,

SqlCommand command = new SqlCommand("select * from UserInfo where sex=0", connection);

SqlDataAdapter adapter = new SqlDataAdapter(command);

/*

下面的被注释掉的代码与上面的代码是等效的

SqlDataAdapter adapter = new SqlDataAdapter("select * from UserInfo where sex=0",connection);

*/

DataTable data = new DataTable();

        adapter.Fill(data);

/* 下面的被注释掉语句与上面填充DataTable的效果是一样的,我更倾向于没有注释掉的部分

DataSet ds = new DataSet();//实例化DataSet

adapter.Fill(ds, "UserInfo");//填充ds中的"UserInfo"表

DataTable data = ds.Tables["UserInfo"];

*/

connection.close();

ASP.net

1 .列举ASP.NET 页面之间传递值的几种方式。

1.使用QueryString, 如....?id=1; response. Redirect()....

2.使用Session变量

3.使用Server.Transfer 

2.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

一般为3层:数据访问层,业务层,表示层。

数据访问层对数据库进行增删查改。

业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密

码的安全等。

表示层为了与用户交互例如用户添加表单。

优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。

缺点: 增加成本。

3. 和 有什么区别?

表示绑定的数据源

是服务器端代码块

4.Bind和Eval函数的区别

绑定表达式:

             

1.Eval 单向绑定:数据是只读的

    Bind 双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库.

2.当对次表达式操作时候,必须用Eval 如

3 绑定控件的属性时要用Bind,而Eval则是其它一些。

    例如:

例如:

Tips:

Ctrl+J : 列出成员 智能感知

Ctrl+F: 查找

F3: 查找下一个

Shift+F3: 查找上一个

Ctrl+Shift+L: 删除当前行

Ctrl+Shift+U: 全部变为大写

Ctrl+U: 全部变为小写

Ctrl+Shift+S: 全部保存

Alt+鼠标左按钮: 选择矩形文本

Ctrl+K+D:自动排版

正则表达式规则:

\w:匹配任何字类字符,包括下划线。等效[A-Za-z0-9_]

\d:数字字符匹配。等效[0-9]

\D:非数字字符匹配。等效[^0-9]

\W:与任何非单词字符匹配。等效[^A-Za-z0-9_]

\b:匹配单词的开始或结束

[a-z]:字符范围。匹配指定范围内的任何字符,如[a-z]为匹配a-z间任何字符

*:重复零次或多次

?:重复零次或一次    

+:重复一次或多次

{n}:重复n次

{n,}n次或多次

{n,m}:重复n到m次

(?=pattern1|patternN):

^:符合正则表达式的内容必须位于字符串开头

$:匹配字符串的结束

\b:用于完整的匹配一个单词,如"\bend\b",在“weekend,endfor,end”中会匹配最后一个单词end

.:匹配除换行符以外的任意字符

?!:一定不会出现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xyzko1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值