最新评论
执迷不悟 2008-10-22 20:26
默认情况下,它ExecuteReader是带CommandBehavior.CloseConnection属性的。
伯恩斯坦、 2008-07-24 17:02
什么跟什么啊,就算选了那个也只是暂时解决问题吧,"Require source to exactly match..." 不还是说源文件跟实际在用的不一样么,只是让你凑合着停下来而已,有个屁用,楼下的两个人太二了吧
王嘉春 2008-06-20 10:11
如果服务器后台的内存够大的话可以考虑做服务器端的缓存。
把常用的文件缓存在web server上,并采用LRU算法实现cache的fan in和fan out来维护cache的内容,提高cache的命中率。
把常用的文件缓存在web server上,并采用LRU算法实现cache的fan in和fan out来维护cache的内容,提高cache的命中率。
@wIkI 2008-06-19 09:47
可以把现有的所有数据给整合成一个Excel,每个分页就是一个sheet,然后以后每次增加记录的时候(就是有新纪录),往Excel表中添加数据,给页面做个下载,每次下载的都是这个Excel文件。
如果有时间,做个后台队列,每时间段执行一个批处理,这个批处理主要就是把这个时间段内的数据汇总一下,然后保存成一个Excel。
如果Excel他查询不方便的话,可以做个客户端软件解析Excel。
如果有时间,做个后台队列,每时间段执行一个批处理,这个批处理主要就是把这个时间段内的数据汇总一下,然后保存成一个Excel。
如果Excel他查询不方便的话,可以做个客户端软件解析Excel。
Robot·H 2008-05-23 12:15
@缺少笔试经验
有的时候可以牺牲范式的吧。为了提高性能。
针对这个题目来说。
应该是这样的。
CREATE TABLE Students
(
id int IDENTITY(1,1) PRIMARY KEY,
Name nvarchar(100) NOT NULL
UNIQUE NONCLUSTERED)
GO
INSERT Students
SELECT a.NAME FROM Scores a
WHERE
not exists(
SELECT * from Scores b
where b.name=a.name and b.id>a.id
)
GO
SELECT * FROM Students
有的时候可以牺牲范式的吧。为了提高性能。
针对这个题目来说。
应该是这样的。
CREATE TABLE Students
(
id int IDENTITY(1,1) PRIMARY KEY,
Name nvarchar(100) NOT NULL
UNIQUE NONCLUSTERED)
GO
INSERT Students
SELECT a.NAME FROM Scores a
WHERE
not exists(
SELECT * from Scores b
where b.name=a.name and b.id>a.id
)
GO
SELECT * FROM Students
Robot·H 2008-05-23 12:09
@缺少笔试经验
有的时候可以牺牲范式的吧。为了提高性能。
针对这个题目来说。
应该是这样的。
有的时候可以牺牲范式的吧。为了提高性能。
针对这个题目来说。
应该是这样的。
Robot·H 2008-05-23 11:49
关于第五题的第一问。
--创建测试数据库
CREATE DATABASE Interview
GO
USE Interview
GO
--创建表
CREATE TABLE Scores(id int,name nvarchar(50),score int)
GO
--插入数据
INSERT Scores SELECT 1, '张三', 80
UNION ALL SELECT 2, '张三', 89
UNION ALL SELECT 3, '张三', 89
UNION ALL SELECT 4 ,'李四', 89
UNION ALL SELECT 5, '李四', 89
UNION ALL SELECT 6, '王五', 89
GO
--查看数据
SELECT * FROM Scores
--a
--method1
SELECT * FROM Scores
WHERE id in
(SELECT MAX(id)
FROM Scores
GROUP BY name)
--method2
SELECT * FROM Scores a
WHERE id in
(
SELECT TOP 1 ID FROM Scores b WHERE a.name=b.name order by id DESC
)
--method3
SELECT * FROM Scores a
WHERE
1>(
SELECT COUNT(0) from Scores b
where b.name=a.name and b.id>a.id
)
--method4
SELECT * FROM Scores a
WHERE
not exists(
SELECT * from Scores b
where b.name=a.name and b.id>a.id
)
--创建测试数据库
CREATE DATABASE Interview
GO
USE Interview
GO
--创建表
CREATE TABLE Scores(id int,name nvarchar(50),score int)
GO
--插入数据
INSERT Scores SELECT 1, '张三', 80
UNION ALL SELECT 2, '张三', 89
UNION ALL SELECT 3, '张三', 89
UNION ALL SELECT 4 ,'李四', 89
UNION ALL SELECT 5, '李四', 89
UNION ALL SELECT 6, '王五', 89
GO
--查看数据
SELECT * FROM Scores
--a
--method1
SELECT * FROM Scores
WHERE id in
(SELECT MAX(id)
FROM Scores
GROUP BY name)
--method2
SELECT * FROM Scores a
WHERE id in
(
SELECT TOP 1 ID FROM Scores b WHERE a.name=b.name order by id DESC
)
--method3
SELECT * FROM Scores a
WHERE
1>(
SELECT COUNT(0) from Scores b
where b.name=a.name and b.id>a.id
)
--method4
SELECT * FROM Scores a
WHERE
not exists(
SELECT * from Scores b
where b.name=a.name and b.id>a.id
)
缺少笔试经验 2008-05-19 23:58
第5题的c,我的观点应该这样理解:score里面反复出现相同的人名,比如“张三”,“李四”之类的。这样不符合3NF(就是第三范式)。所以要把它规范化成符合第三范式的。那就是另外建一个表,比如就叫User,每个人在这个表中只出现一次。表可以类似下面这样:
Create Table [User] (
UserId int NOT NULL PRIMARY KEY,
[name] varchar(50) NOT NULL,
SID varchar(50) NULL -- 身份证号码,瞎弄一个,这样显得表不是太单薄了。
)
然后把score表修改成使用UserId来标识某个具体用户。这样就符合第三范式了,也就像题目说的“从数据库设计层面”(嘻嘻)。
Create Table [User] (
UserId int NOT NULL PRIMARY KEY,
[name] varchar(50) NOT NULL,
SID varchar(50) NULL -- 身份证号码,瞎弄一个,这样显得表不是太单薄了。
)
然后把score表修改成使用UserId来标识某个具体用户。这样就符合第三范式了,也就像题目说的“从数据库设计层面”(嘻嘻)。
缺少笔试经验 2008-05-19 23:45
第一题比较垃圾,我猜可能是想考察字符转换方面的知识吧。注意题目中说的使用ASCII编码存储。说实话,“以ascii存储编程连接两个字符串”意思有点儿模糊。可能加上“方式”二字,就能容易理解一些。但尽管这样,仍然含义不是很清楚。假设把题目更改成这样“两个字符串变量 string a,b ;以ascii方式存储编程连接两个字符串”。问题又来了,以ascii方式存储是修饰谁的。我认为应该不是修饰前半句的,原因有二。1:在.net中字符串对象中的字符都是以unicode编码存储的。若修饰前半句,显然与事实冲突。2:前半句后面的分号把语义明确地分成了两段。所以我认为“以ascii(方式)存储”因该是修饰后半句的。既然字符串对象已经在那里了,而非要编程连接两个字符串,并且要用ascii方式存储。很可能是指在连接算法的进行过程中,使用ascii方式存储。但这样一来,问题又来了,明明字符串类重载了“+”操作符,可以很容易地实现字符串串联,而非不让用,还要以ascii形式存储,不知道是哪味药吃错了。
对题目的分析到此告一段落。我们可以把题目改写成这样“有两个字符串变量string a,b; 不允许使用任何类库函数,编程把他们连接在一起,程序中要使用ascii方式作为中间存储形式。”这道题怎么做,我可以很负责任地说“我不知道!”。原因很简单,如果把“+”操作符也认为是调用了类库函数的话,那么操作字符串对象就没有不用类库函数的。因为String类本身就是.net framework类库提供的类,怎么能不用类库函数呢?如果放宽一点儿限制,那么最简单自然的方式就是用“+”操作符连接两个字符串。但问题这样又与题目要求使用ascii存储相矛盾。若非要用ascii存储,那么这个存储应该是把字符串放在一个字节数组里,数组的每个元素是用ascii编码表示的一个字符。然而,在.net里把一个字符串对象转换成这样的数组必须借助类库函数(可以用System.Text.Encoding.ASCII.GetBytes(string)达到目的)。否则无法完成。哪位高手能完全按照题目的要求给出答案,欢迎分享。
我这只是扔块破砖头,希望后面能有和氏璧被“勾引”出来。
对题目的分析到此告一段落。我们可以把题目改写成这样“有两个字符串变量string a,b; 不允许使用任何类库函数,编程把他们连接在一起,程序中要使用ascii方式作为中间存储形式。”这道题怎么做,我可以很负责任地说“我不知道!”。原因很简单,如果把“+”操作符也认为是调用了类库函数的话,那么操作字符串对象就没有不用类库函数的。因为String类本身就是.net framework类库提供的类,怎么能不用类库函数呢?如果放宽一点儿限制,那么最简单自然的方式就是用“+”操作符连接两个字符串。但问题这样又与题目要求使用ascii存储相矛盾。若非要用ascii存储,那么这个存储应该是把字符串放在一个字节数组里,数组的每个元素是用ascii编码表示的一个字符。然而,在.net里把一个字符串对象转换成这样的数组必须借助类库函数(可以用System.Text.Encoding.ASCII.GetBytes(string)达到目的)。否则无法完成。哪位高手能完全按照题目的要求给出答案,欢迎分享。
我这只是扔块破砖头,希望后面能有和氏璧被“勾引”出来。
ZSE 2008-05-07 09:09
太感谢了,解决了我一个晚上想不出的问题
