1.有表A,结构如下:
A: p_ID p_Num s_id
1 10 01
1 12 02
2 8 01
3 11 01
3 8 03
其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID。请用SQL语句实现将上表中的数据合并,合并后的数据为:
p_ID s1_id s2_id s3_id
1 10 12 0
2 8 0 0
3 11 0 8
其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量。如果该产品在某仓库中无库存量,那么就是0代替。
SELECT P_ID, S1_NUM = SUM(CASE S_ID WHEN '01' THEN P_NUM ELSE 0 END),
S2_NUM = SUM(CASE S_ID WHEN '02' THEN P_NUM ELSE 0 END),
S3_NUM = SUM(CASE S_ID WHEN '03' THEN P_NUM ELSE 0 END)
FROM TEST3_TABLE
GROUP BY P_ID
2.叙述Page页面的生命周期。(即写出Page几个主要的事件运行顺序)
对象初始化 OnInit
加载视图状态数据 LoadViewState
处理回传数据 LoadPostData
对象加载 Load -> OnLoad
激发RaisePostDataChanged 事件
处理客户端回传事件 RaisePostBackEvent
对象预呈现 OnPreRender
保存视图状态 SaveViewState
呈现HTML Render
释放 Dispose
3.有ab.aspx页面,在codebehind里动态在页面里创建一checkbox控件,创建后用户在页面选中该checkbox,在codebehind里如何取该checkbox的值?(即是选中还是未选中状态)
假设窗体上有个Panel控件
CheckBox cb1 = new CheckBox();
cb1.ID = "CheckBox1";
cb1.Text = "Test";
Panel1.Controls.Add(cb1);
bool checkBoxChecked = ((CheckBox)Panel1.FindControl("CheckBox1")).Checked;
4.Session跟Cookie有什么关系? 假如IE禁止使用cookie,那Session还有用吗?
当用户浏览站点时,服务器为该用户建立唯一的Session,Session的生命周期一直到用户访问结束。ASP.NET 会为每个Session维护会话状态信息,应用程序可在会话状态信息中存储用户特定信息。
ASP.NET 必须跟踪每个用户的Session ID,以便可以将用户映射到服务器上的会话状态信息。默认情况下,ASP.NET 使用非永久性 Cookie 来存储会话状态。
如果用户已在IE上禁用 Cookie,会话状态信息便无法存储在 Cookie 中。
ASP.NET 提供了无 Cookie 会话作为替代。可以将应用程序配置为不将会话 ID 存储在 Cookie 中,而存储在站点中页面的 URL 中。
5. c#中的关键字this,在class中和在struck中如何使用?
6, 如何理解装箱、坼箱操作? 运用此操作时对系统性能有什么影响?
装箱 -> 从值类型转换为引用类型 坼箱反之
创建引用类型会比创建值类型的系统开销要大得多,因为它在
堆上创建了对象,消耗了内存。而值类型却只把值保存在了线程堆栈上。
所以运用此操作时对系统性能有什么影响就不用说了吧?
7. XML中的XmlDocument跟 XmlReader有什么区别?
XmlDocument用于读取、操作和修改 XML 文档。XmlReader 类也读取 XML,但它提供非缓存的只进、只读访问。这意味着使用 XmlReader 无法编辑属性值或元素内容,或无法插入和移除节点
8. 接口跟抽象有什么异同? 你在平时项目设计过程中何时使用接口? 何时使用抽象类?
接口只能包含方法 属性 索引器 事件四种成员
抽象类的主要目的是用于继承,表达一种 is-a 什么是什么的关系
而接口传达的是has-abilities 具有某种能力 的概念
除非是非常强烈的is-a关系,才用抽象类.其它的情况都优先考虑使用接口.
9. public void Check(string s)
{
.....
}
public void Check(ref string s)
{
.....
}
Public void Check(out string s)
{
.....
}
上面的三个方法传入的参数有什么不同?另外请说明string是什么数据类型(值类型?引用类型?)。
在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:
1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
注:在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传递的是调用参数的内存地址,该参数在方法内外指向的是同一个存储位置。
10. 如图,如何找出他们的交叉区域。请写出你的实现思路。
|-------|
| |
| |
| |--|----|
| | |
| | | |
|----|--| |
|-------|
Kyle