面试真题(.NET/Sqlserver/web前端)
我们的主任也给我们整理了面试的题目,在这里我整理了一些题目的答案.
1.数据库中怎么创建二维表?
对于这道题,我们之前也是学过数据库的,但是二维表今天还是第一次听过,于是就上网搜了一下,发现其实并不难.首先要知道什么是二维表,想必大家都上学的时候都见过课程表吧,最顶部的一行标注星期,最左边的一列标注时间,就是一个X轴,一个Y轴,里面每个单元格的内容对应着两个字段,星期和上课时间,这样的表格就是二维表,那么,怎么创建二维表呢?简单的方法可以通过Excel表格直接导入,在Excel表格中写好一个课程表,在数据库中导入即可.
2. 建表时会注意哪些细节?
- 在建库时,如果用代码默认写create database 库名,这样建的数据库的默认路径是C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA,我一般倒是习惯这样建.
- 其次就是建表,在建表的时候,肯定是要往自己刚刚创的数据库里面建表,但是我们用的sql server2012默认使用的事master库,要么建完表后再后面再写一句use 库名 go,或者用鼠标点击选择自己的库,这样才能往自己的那个库里建表.
- 开始建表了,create table 表名(字段 类型 ......),在这里注意一点,字段的类型放在字段的后面,后面的非空,主键,自增,约束等条件的顺序没有明确要求.
- 使用check约束字段中值的范围,check后面的括号中应为表达式,如:state int check(state=1 or state=0).
- 有些字段虽然不是主键,但是根据实际情况,不能为空值的,比如课程表中课程名称需要在后面加上not null.
- 当某个字段是外键时,一定要和主键的类型一致,不然会报错的,需要用references关键字来说明其对应的主表的主键:references 主表名(主键名).
建表,我目前大致能想到的就这么多,当然肯定不止这么多,如果你还能想到更多,欢迎评论.
3.建表时有哪些数据类型?
类型可就多了,在这里我也来罗列一下:
Character字符串
数据类型 | 描述 | 存储 |
char(n) | 固定长度的字符串.最多8,000个字符串 | n |
varchar(n) | 可变长度的字符串.最多8,000个字符串 | |
varchar(max) | 可变长度的字符串.最多1,073,741,824个字符串 | |
text | 可变长度的字符串.最多2GB字符数据 |
Unicode字符串
数据类型 | 描述 | 存储 |
nchar(n) | 固定长度的Unicode数据.最多4,000个字符 | |
nvarchar(n) | 可变长度的Unicode数据.最多4,000个字符 | |
nvarchar(max) | 可变长度的Unicode数据.最多536,870,912个字符 | |
ntext | 可变长度的Unicode数据.最多GB字符数据 |
Binary类型
数据类型 | 描述 | 存储 |
bit | 允许0、1或NULL | |
binary(n) | 固定长度的二进制数据.最多8,000字节 | |
varbinary(n) | 可变长度的二进制数据.最多8,000字节 | |
varbinary(max) | 可变长度的二进制数据.最多2GB字节 | |
image | 可变长度的二进制数据.最多2GB |
Number类型
数据类型 | 描述 | 存储 |
tinyint | 允许从0到255的所有数字 | 1字节 |
smallint | 允许从-32,768到32,767的所有数字 | 2字节 |
int | 允许从-2,147,483,648到2,147,483,647的所有数字 | 4字节 |
bigint | 允许介于-9,223,372,036,854,775,808和9,223,372,036,854,775,807之间的所有数字 | 8字节 |
decimal(p,s) |
固定精度和比例的数字,允许从-10^38+1到10^38-1之间的数字. p参数指示可以存储的最大位数(小数点左侧和右侧).p必须是1到38之间的值,默认是18. s参数指示小数点右侧存储的最大位数.s必须是0到p之间的值,默认是0 |
5-17字节 |
number(p,s) |
固定精度和比例的数字,允许从-10^38+1到10^38-1之间的数字. p参数指示可以存储的最大位数(小数点左侧和右侧).p必须是1到38之间的值,默认是18. s参数指示小数点右侧存储的最大位数.s必须是0到p之间的值,默认是0 |
5-17字节 |
smallmoney | 介于-214,784.3648和214,784.3647之间的货币数据 | 4字节 |
money | 介于-922,337,203,685,477.5808和922,337,203,685,477.5807之间的货币数据 | 8字节 |
float(n) | 从-1.79E+308到1.79E+308的浮动精度数字数据.参数n指示该字段保存4字节还是8字节.float(24)保存4字节,而float(53)保存8字节.n的默认值是53 | 4或8字节 |
real | 从-3.10E+38到3.40E+38的浮动精度数字数据 | 4字节 |
Date类型
数据类型 | 描述 | 存储 |
datetime | 从1753年1月1日到9999年12月31日,精度为3.33毫秒 | 8bytes |
datetime2 | 从1753年1月1日到9999年12月31日,精度为100纳秒 | 6-8bytes |
smalldatetime | 从1900年1月1日到2079年6月6日,精度为1分钟 | 4bytes |
date | 仅存储日期,从0001年1月1日到9999年12月31日 | 3bytes |
time | 仅存储时间.精度为100纳秒 | 3-5bytes |
datetimeoffset | 与datetime2相同,外加时区偏移 | 8-10bytes |
timestamp | 存储唯一的数字,每当创建或修改某行时,该数字会更新,timestamp基于内部时钟,不对应真实时间,每个表只能有一个timestamp变量 |
其他数据类型
数据类型 | 描述 | |
sql_variant | 存储最多8,000个字节不同数据类型的数据,除了text,ntext以及timestamp | |
uniqueidentifler | 存储全局标识符(GUID) | |
xml | 存储XML格式化数据,最多2GB | |
cursor | 存储对用于数据库操作的指针的引用 | |
table | 存储结果集,供稍后处理 |
4.getDate() 如何取当前时间?
sql server中获取当前时间其实很简单:
执行这句就行了
select GETDATE()
当然也可以转换日期格式:
CONVERT 函数转换格式:主要注意第三个参数 date_style;
格式:select CONVERT(varchar,GETDATE(),0)
最后的data_style可以有
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,120,121,126,127,130,131等
常用的 20,23,24,102,111,112,120等.
- 100 或者 0 mon dd yyyy hh:miAM (或者 PM)
- 101 mm/dd/yy
- 102 yy.mm.dd
- 103 dd/mm/yy
- 104 dd.mm.yy
- 105 dd-mm-yy
- 106 dd mon yy
- 107 Mon dd, yy
- 108 hh:mm:ss
- 109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
- 110 mm-dd-yy
- 111 yy/mm/dd
- 112 yymmdd
- 113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
- 114 hh:mi:ss:mmm(24h)
- 120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
- 121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
- 130 dd mon yyyy hh:mi:ss:mmmAM
- 131 dd/mm/yy hh:mi:ss:mmmAM
5.SQLServer中怎样判断null值?
- 查询时进行判断,如果是null值就替换:
替换null:isnull(arg,value)
如:select isnull(price,0.0) from orders ,如果price为null的话,用0.0替换
- 或者和null进行比较:
与null比较: is not null,is null
如 select * from orders where price is null ,price等于null
如: select * from orders where price is not null ,price不等于null
6.ASP.NET中有多少用户控件?
首先要知道什么是用户控件.在 ASP.NET 中:使用与 ASP.NET 页相同的语法,以声明方式创作的服务器控件。该控件用 .ascx 扩展名保存为文本文件。所以,到底有多少用户控件呢,那需要看你能创建多少个了,你创建多少个就有多少个.
7.内联接和外联接关键字.
内联接:inner join
外连接:left join或left out join
8.内关联和左关联的区别.
内关联是平等条约.将先出现的表称为你,后出现的表称为我.你我签约内关联,你有我有的数据,你我都可以展示;你有我没有的数据,都不展示;你没有我有的数据,也都不展示,公平吧.
左关联是不平等条约.将先出现的表称为你,后出来的表称为我.你我签约左关联,你有我有的数据,你我都可以展示;你有我没有的数据,你可以展示你的,我的展示全赋值为空;你没有我有的数据,对不起,没有展示的机会.所以说,左关联试试不平等条约.
9.存储过程中怎么调用?
在存储过程里用exce执行另一存储过程名及它需要的参数就可以了如 exec abc '1', '2'(abc 是存储过程的名字, '1','2' 是它的参数)
10.ADO.NET中结构.
11.char(2) 和varchar(2) 的区别?
char和varchar的区别就是char是固定了字符串长度的,而varchar的字符串长度是可变的.
12.AJax交互有几种方式?
详情http://www.php.cn/js-tutorial-391231.html
- 通过URL传参
- 单值传参
- 对象传参
- 对象序列化传参
- 列表传参
13.产生一个数组,排序.
产生一个数组,可以自己填数字进去,也可以随机插入数字,排序的话,用 冒泡排序就可以了.
14.怎样产生随机数,随机数产生规则
- Random类
我们用的最多的就是Random类了:
for(int i=0;i<10;i++) { Random rd = new Random(); Console.WriteLine(rd.Next(10,100).ToString()); }
这个例子会得到10个相同的随机数,因为循环完成的时间是非常短,所以根据系统时间作为种子算出的随机数就会是一样的。所以Random循环只适用于要求比较低的情况。
- Guid类
System.Guid
GUID (Globally Unique Identifier) 全球唯一标识符
GUID的计算使用到了很多在本机可取到的数字,如硬件的ID码,当前时间等.所计算出的128位整数(16字节)可以接近唯一的输出.
Console.WriteLine(Guid.NewGuid().ToString());
计算结果是xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx结构的16进制数字.当然这个格式也是可以更改的.常用的四种格式:
var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidN = Guid.NewGuid().ToString("N"); // e0a953c3ee6040eaa9fae2b667060e09 var uuidD = Guid.NewGuid().ToString("D"); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidB = Guid.NewGuid().ToString("B"); // {734fd453-a4f8-4c5d-9c98-3fe2d7079760} var uuidP = Guid.NewGuid().ToString("P"); // (ade24d16-db0f-40af-8794-1e08e2040df3) var uuidX = Guid.NewGuid().ToString("X"); // {0x3fa412e3,0x8356,0x428f,{0xaa,0x34,0xb7,0x40,0xda,0xaf,0x45,0x6f}}
- RNGCryptoServiceProvider类
System.Security.Cryptography.RNGCryptoServiceProvider
RNGCryptoServiceProvider 使用加密服务提供程序 (CSP) 提供的实现来实现加密随机数生成器 (RNG).
因该类使用更严密的算法.所以即使如下放在循环中,所计算出的随机数也是不同的.
for (int i = 0; i < 10; i++) { RNGCryptoServiceProvider csp = new RNGCryptoServiceProvider(); byte[] byteCsp = new byte[10]; csp.GetBytes(byteCsp); Console.WriteLine(BitConverter.ToString(byteCsp)); }
- Menbership.GeneratePassword()
public static string GeneratePassword(int length, int numberOfNonAlphanumericCharacters); // // 摘要: // 生成指定长度的随机密码。 // // 参数: // numberOfNonAlphanumericCharacters: // 生成的密码中的标点字符数。 // // length: // 生成的密码的字符数。长度必须介于 1 和 128 个字符之间。 // // 返回结果: // 指定长度的随机密码。
例:
for (int i = 0; i < 10; i++) { Response.Write(Membership.GeneratePassword(20, 1) + "<br>"); }
结果为
C!&^HoTNv3!ZHkK9BAbu
azLgER)JJ-UW8q*14yz*
I3qnb]Zxu16ht!kKZ!Q*
9U:MAQ&c1x)^aed@xe**
oL(%4JvfbP&t5*Hpl4l-
6@zj$CnhW&D+|xOf:qIk
A/!Di&l*tY$QaMH0gyzY
z^wu6{1BMq7D^+WU]>f$
1OgIJS3&09fw0F9.|aXA
8F+Gy+L{O6x{SfugME*%
15.SQL server中使用哪些功能?
SQL Server Management Studio 包括以下常用功能:
-
支持 SQL Server 的多数管理任务。
-
用于 SQL Server 数据库引擎管理和创作的单一集成环境。
-
用于管理 SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services 以及 SQL Server Compact 3.5 SP1 中的对象的新管理对话框,使用这些对话框可以立即执行操作,将操作发送到代码编辑器或将其编写为脚本以供以后执行。
-
非模式以及大小可调的对话框允许在打开某一对话框的情况下访问多个工具。
-
常用的计划对话框使您可以在以后执行管理对话框的操作。
-
在 Management Studio 环境之间导出或导入 SQL Server Management Studio 服务器注册。
-
保存或打印由 SQL Server Profiler 生成的 XML 显示计划或死锁文件,以后进行查看,或将其发送给管理员以进行分析。
-
新的错误和信息性消息框提供了详细信息,使您可以向 Microsoft 发送有关消息的注释,将消息复制到剪贴板,还可以通过电子邮件轻松地将消息发送给支持组。
-
集成的 Web 浏览器可以快速浏览 MSDN 或联机帮助。
-
从网上社区集成帮助。
-
SQL Server Management Studio 教程可以帮助您充分利用许多新功能,并可以快速提高效率。若要阅读该教程,请转至 教程。
-
具有筛选和自动刷新功能的新活动监视器。
-
集成的数据库邮件接口。
新的脚本撰写功能
SQL Server Management Studio 的代码编辑器组件包含集成的脚本编辑器,用来撰写 Transact-SQL、MDX、DMX、XML/A 和 XML 脚本。主要功能包括:
-
工作时显示动态帮助以便快速访问相关的信息。
-
一套功能齐全的模板可用于创建自定义模板。
-
可以编写和编辑查询或脚本,而无需连接到服务器。
-
支持撰写 SQLCMD 查询和脚本。
-
用于查看 XML 结果的新接口。
-
用于解决方案和脚本项目的集成源代码管理,随着脚本的演化可以存储和维护脚本的副本。
-
用于 MDX 语句的 Microsoft IntelliSense 支持。
对象资源管理器功能
SQL Server Management Studio 的对象资源管理器组件是一种集成工具,可以查看和管理所有服务器类型的对象。主要功能包括:
-
按完整名称或部分名称、架构或日期进行筛选。
-
异步填充对象,并可以根据对象的元数据筛选对象。
-
访问复制服务器上的 SQL Server 代理以进行管理。
16.怎样创建存储过程(procedure)?关键字?
create proc proc名
as
sql语句...
go
17. 视图的关键字?怎样创建视图?视图可以创建视图吗?
关键字:view
创建视图,首先最好判断是否存在这个视图,视图命名一般都是以View_开始的.
--------创建视图------- --判断是否存在-- if exists (select * from sysobjects where name = 'View_EdsProd') drop view View_EdsProd go --创建视图 create view View_EdsProd as select * from Tab_EdsProd where Mid>1 go --使用视图-- select *from View_EdsProd
可以在视图的基础上创建视图,在创建视图的时候,通过某种条件查询一个表中的数据从而创建出一个虚拟的表,视图名就其实也就是一个表名.
18.Json数据格式.
对象 {“key”: value }
多个对象[ {“key”: value },{“key”: value }... ]
19.文件和流是指哪些?文件读写步骤.
文件(File)和流(Stream)是既有区别又有联系的两个概念。
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。
- 文件的读写步骤:
读写txt文件的方法:
1.添加命名空间:
System.IO;
System.Text;
2.文件的读取
(1)使用FileStream类进行文件的读取,并将它转换成char数组,然后输出。
byte[] byData = new byte[100]; char[] charData = new char[1000]; public void Read() { try { FileStream file = new FileStream("E:\\test.txt", FileMode.Open); file.Seek(0, SeekOrigin.Begin); file.Read(byData, 0, 100); //byData传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符. Decoder d = Encoding.Default.GetDecoder(); d.GetChars(byData, 0, byData.Length, charData, 0); Console.WriteLine(charData); file.Close(); } catch (IOException e) { Console.WriteLine(e.ToString()); } }
(2).使用StreamReader读取文件,然后一行一行的输出。
public void Read(string path) { StreamReader sr = new StreamReader(path,Encoding.Default); String line; while ((line = sr.ReadLine()) != null) { Console.WriteLine(line.ToString()); } }
3.文件的写入
(1).使用FileStream类创建文件,然后将数据写入到文件里。
public void Write() { FileStream fs = new FileStream("E:\\ak.txt", FileMode.Create); //获得字节数组 byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!"); //开始写入 fs.Write(data, 0, data.Length); //清空缓冲区、关闭流 fs.Flush(); fs.Close(); }
(2).使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。
public void Write(string path) { FileStream fs = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(fs); //开始写入 sw.Write("Hello World!!!!"); //清空缓冲区 sw.Flush(); //关闭流 sw.Close(); fs.Close(); }
以上就完成了,txt文本文档的数据读取与写入。
20.文件操作的命名空间?
System.IO;
21.事务是什么?事务关键字?
所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。
简单举个例子就是你要同时修改数据库中两个不同表的时候,如果它们不是一个事务的话,当第一个表修改完,可是第二表改修出现了异常而没能修改的情况下,就只有第二个表回到未修改之前的状态,而第一个表已经被修改完毕。
而当你把它们设定为一个事务的时候,当第一个表修改完,可是第二表改修出现了异常而没能修改的情况下,第一个表和第二个表都要回到未修改的状态!这就是所谓的事务回滚。
关键字:transaction
22.触发器?系统有哪些触发器表?
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,是一种特殊类型的存储过程,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发。
AFTER 触发器和INSTEAD OF 触发器
23.表与表关联,有哪几种联接方式?
- CROSS JOIN(创建笛卡尔积)
- INNER JOIN(内连接)
- OUTER JOIN (外连接)
- LEFT OUTER JOIN(左连接)RIGHT OUTER JOIN(右连接)
- FULL OUTER JOIN(全连接)
24.SQLServer有哪几种查询方式?
原文地址:https://blog.csdn.net/shiyangkai/article/details/71629553
- 投影查询
- 选择查询
- 排序查询
下面给出的是进行测试的数据库表Table:
首先是投影查询:
投影查询有三种写法:
select CID 客户编号,CContact 联系人,CPhone 联系电话,CIntegration 积分 from Table
select CID AS客户编号,CContact AS联系人,CPhone AS联系电话,CIntegration AS积分 from Table
select 客户编号=CID,联系人=CContact,联系电话=CPhone,积分=CIntegration from Table
结果如下:
其次是选择查询,为了准确的查到条件所在的数据内容。
select * from Table where CIntegration<=24 and CPhone like '%244575%'
%表示任意长度的字符串
选择查询积分小于24并且电话为244575的数据结果:
最后是排序查询,升序和降序排列 。
select * from Table order by CIntegration desc
desc:降序,asc:升序,默认是升序
排序查询结果:
25.面向对象思想.
作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。
面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面。
面向对象思想有三大要素:封装、继承和多态。
26.JS中判断是否是数字型?.NET中判断是否数字型?
- js判断是否是数字
第一种方法 isNaN
isNaN 返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。
NaN 即 Not a Number
isNaN(numValue)
但是如果numValue果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
第二种方法 正则表达式
function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ var nubmer = document.getElementById(input).value; if (!re.test(nubmer)) { alert("请输入数字"); document.getElementById(input).value = ""; return false; } }
第三种方法 利用parseFloat的返回值
function isNotANumber(inputData) { //isNaN(inputData)不能判断空串或一个空格 //如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。 if (parseFloat(inputData).toString() == "NaN") { //alert("请输入数字……");注掉,放到调用时,由调用者弹出提示。 return false; } else { return true; } }
- .NET中判断是否数字
第一种方法 正则表达式
using System.Text.RegularExpressions;
Regex numRegex = new Regex(@"^\d+$"); string id = Request.QueryString["Id"]; if (numRegex.IsMatch(id)) { // id 为纯数字。。 } else { // id 包含数字以外的字符。。 }
第二种方法 try catch方法
try { Convert.ToInt32("123"): Console.Write("是数字"); } catch(Exception ex) { Console.Write("非数字"); }
暂时只 找到这两种,如果还有,欢迎补充.
27. .NET如何捕获异常?每个块代表什么?
try{ //捕捉可能发生的错误 } catch{ //发生try中的错误时所执行的代码 } finally{ //不管怎样都会之心的代码 }
28.索引是什么,怎么定义索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
29.子查询的关联字有哪些?
sql中几个子查询关键词any,all,exists,in
详细案例:https://blog.csdn.net/kbx8916/article/details/52840575
30.约束是做什么用的?
约束是在表中定义的用于维护数据库完整性的一些规则。
通过为表中的列定义约束可以防止将错误的数据插入表中,也可以保持表之间数据的一致性
若某个约束条件只作用于单独的列,可以将其定义为列约束也可定义为表约束;
若某个约束条件作用域多个列,则必须定义为表约束。
SQL Server中的约束用来确保系统的完整性。一般约束可以分为:
主键约束
外键约束
检查约束
默认约束
唯一约束
非空约束
31.SQLServer中null 值与空值区别?
SQL里的NULL是真实的空,在存储上并未分配存储空间
空字符串,在存储上已经分配存储空间,但是是空内容。
两者在SQL中的判断也不一样
NULL的判断: 字段名 is null
空字符串:字段名=''
两者可以合并判断:
if isnull(字段名,'')=''
print '空'
else
print '非空'
32.类的作用域有哪些?
简单来说就是类的使用范围。
1.四个访问修饰符: 指定声明的类的可访问性。
- public: 公共访问是允许的最高访问级别,对访问没有限制;
- private:私有访问是允许的最低访问级别,私有类只有在声明它们的类和结构体中才是可访问的;
- internal:类型和类型成员的访问修饰符。 只有在同一程序集的文件中,内部类型或成员才是可访问的;
- protected:受保护类在其所声明的类中可由其所声明类的派生类实例访问
2. 其他类的修饰符:
- abstract:用于声明虚类,指示某个类只能是其他类的基类。
- partial: 部分在整个同一程序集中定义分部类、结构和方法。
- sealed:指定类不能被继承。
- static:声明静态类,类型本身只含有静态成员,不能被实例化。
33.ASP.NET中项目中或者是跨页传值方式有哪些?
https://blog.csdn.net/solarlhh/article/details/8702318
- 方法一:问号传值(Response.Redirect方法)
1:源页:在按钮的点击事件程序中写入Response.Redirect方法,在其中使用问号传值。
2:目标页:在Request.QueryString集合中查找。
- 方法二:使用Server.Transfer
1:源页:在按钮的点击事件程序中写入: Server.Transfer("Default2.aspx", true); 注意一定要加上第二个参数true,否则值传不过去。
2: 目标页:在Request.Form集合中查找发送方页面上的文本框架ID,如
Response.Write("传过来的名字是:"+Request.Form["txtName"].ToString());
- 方法三:使用PostBackUrl
1:源页:在实现了IbuttonControl接口的控件(如按钮、LinkButton等)上,添加属性PostBackUrl="~/Default2.aspx"
2: 目标页:使用PreviousPage属性,且最好判断一下是否是从发送页以PostBackUrl方式跳转过来的,代码如下所示:
if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack &&
PreviousPage.IsValid)
{
TextBox txt = (TextBox)PreviousPage.FindControl("txtName");
Response.Write(txt.Text);
}
- 方法四:使用Application对象变量
1:源页: 保存信息,建议同时使用Lock和UnLock方法。
Application.Lock();
Application["PageRequestCount"] =
((int)Application["PageRequestCount"])+1;
Application.UnLock();
2:目标页:int cnt=int.Parse(Application["PageRequestCount"].ToString());
- 方法五:使用Session
1:源页:保存信息
Session["Name"]= txtName.Text;
2:目标页 string name=Session["Name"].ToString();
- 方法六:使用Cookie
1:源页: HttpCookie Name= new HttpCookie("Name");
Name.Value= txtName.Text;
cookie.Expires = DateTime.Now.AddMinutes(30);
HttpContext.Current.Response.AppendCookie(Name);
2:目标页:string info =Request.Cookies["cookiename"].Value;
34.ASP.NET中前台如何抛出一个提示?
一、在前台弹出提示框
35.数据库中类型为bit , 插入哪些数据不会报错?
36.HTML的布局结构是什么样的?
html基本结构
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
37.怎样定义一个区域的背景颜色?
先给不同的区域命名,id,class,name 都行,然后在css里面用选择器定位到你想要设置格式的区域分别设置 background-color 就行了.
38.div固定在屏幕中间
方法一(CSS):这里的a是一个div的id名
<style> *{ margin: 0px; padding: 0px; } #a{ width: 200px; height: 200px; background-color: aquamarine; position: fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; margin: auto; } </style>
方法二(JS):
<style> *{ margin: 0px; padding: 0px; } #a{ width: 200px; height: 200px; background-color: aquamarine; position: fixed; } </style> <script> window.onload=function(){ var a = document.getElementById("a"); var Height=document.documentElement.clientHeight;//取得浏览器页面可视区域的宽度 var Width=document.documentElement.clientWidth;//取得浏览器页面可视区域的宽度 var gao1 = a.offsetHeight; var gao2 = a.offsetWidth; var Sgao1= (Height - gao1)/2+"px"; var Sgao2= (Width - gao2)/2+"px"; a.style.top=Sgao1; a.style.left=Sgao2; } </script>
这是到现在已经发下来的题目,还有的没能找到详细答案.