LINQ to SQL语句之Join和Order By
Join操作
适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等。对各个表之间的关系,就用这些实现对多个表的操作。
说明:在Join操作中,分别为Join(Join查询), SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。
该扩展方法对两个序列中键匹配的元素进行inner join操作
SelectMany
说明:我们在写查询语句时,如果被翻译成SelectMany需要满足2个条件。1:查询语句中没有join和into,2:必须出现EntitySet。在我们表关系中有一对一关系,一对多关系,多对多关系等,下面分别介绍一下。
1.一对多关系(1 to Many):
var q = from c in db.Customers from o in c.Orders where c.City == "London" select o;
语句描述:Customers与Orders是一对多关系。即Orders在Customers类中以EntitySet形式出现。所以第二个 from是从c.Orders而不是db.Orders里进行筛选。这个例子在From子句中使用外键导航选择伦敦客户的所有订单。
var q = from p in db.Products where p.Supplier.Country == "USA" && p.UnitsInStock == 0 select p;
语句描述:这一句使用了p.Supplier.Country条件,间接关联了Supplier表。这个例子在Where子句中使用外键导航筛选其供应商在美国且缺货的产品。生成SQL语句为:
SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID],
[t0].[CategoryID],[t0].[QuantityPerUnit],[t0].[UnitPrice],
[t0].[UnitsInStock], [t0].[UnitsOnOrder],[t0].[ReorderLevel],
[t0].[Discontinued] FROM [dbo].[Products] AS [t0] LEFT OUTER JOIN [dbo].[Suppliers] AS [t1] ON [t1].[SupplierID] = [t0].[SupplierID] WHERE ([t1].[Country] = @p0) AND ([t0].[UnitsInStock] = @p1) -- @p0: Input NVarChar (Size = 3; Prec = 0; Scale = 0) [USA]
-- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
2.多对多关系(Many to Many):
var q = from e in db.Employees from et in e.EmployeeTerritories where e.City == "Seattle" select new {
e.FirstName,
e.LastName,
et.Territory.TerritoryDescription
};
说明:多对多关系一般会涉及三个表(如果有一个表是自关联的,那有可能只有2个表)。这一句语句涉及Employees, EmployeeTerritories, Territories三个表。它们的关系是1:M:1。Employees和Territories没有很明确的关系。
LINQ to SQL语句之Join和Order By部分代码
语句描述:这个例子在From子句中使用外键导航筛选在西雅图的雇员,同时列出其所在地区。这条生成SQL语句为:
SELECT [t0].[FirstName], [t0].[LastName], [t2].[TerritoryDescription] FROM [dbo].[Employees] AS [t0] CROSS JOIN [dbo].[EmployeeTerritories] AS [t1] INNER JOIN [dbo].[Territories] AS [t2] ON [t2].[TerritoryID] = [t1].[TerritoryID] WHERE ([t0].[City] = @p0) AND ([t1].[EmployeeID] = [t0].[EmployeeID]) -- @p0: Input NVarChar (Siz
随机生成6位图片验证码
随机生成6位图片验证码.
/// <summary>
/// PicHandler1 的摘要说明
/// </summary>
public class PicHandler1 : IHttpHandler, IRequiresSessionState
{
private string mCheckNo = string.Empty;
protected ImgBuilder _ImgBuilder = new ImgBuilder();
protected VryImgGen _ImgBuilderNew = new VryImgGen();
private string _text = string.Empty;
private string _font = "宋体";
private int _fontSize = 8;
private int _padding = 2;
public void ProcessRequest(HttpContext context)
{
mCheckNo = DisCheckNo();
context.Session["CheckCode"] = mCheckNo;
this._ImgBuilder.FontSize = this._fontSize;
this._ImgBuilder.Padding = this._padding;
if (!string.IsNullOrEmpty(this._font))
{
this._ImgBuilder.Fonts = new string[] { this._font };
}
this._ImgBuilderNew.ChaosWight = 40;
this._ImgBuilderNew.FontSize = 25;
this._ImgBuilderNew.Padding = 3;
System.Drawing.Bitmap image =
this._ImgBuilderNew.CreateImage(mCheckNo);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
context.Response.ClearContent();
context.Response.ContentType = "image/Jpeg";
context.Response.BinaryWrite(ms.ToArray());
context.Session["CheckCode"] = mCheckNo.ToString(); //如果没有实现IRequiresSessionState,则这里会出错,也无法生成图片
context.Response.End();
}
//验证码生成
protected string DisCheckNo()
{
string hash = HashCode.GetNext();
string CheckNo = string.Empty;
Random rd = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < 6; i++)
{
CheckNo += hash.Substring(rd.Next(1, hash.Length - 1), 1);
}
CheckNo = CheckNo.Replace("0", rd.Next(1, 9).ToString());
CheckNo = CheckNo.Replace("o", rd.Next(1, 9).ToString());
常用的服务器端数据验证控件
常用的服务器端数据验证控件
RequiredFieldValidator(必须项);
CompareValidator(与某值的比较);
RangeValidator(范围检查);
RegularExpressionValidator(模式匹配);
CustomValidator(用户定义);
ValidationSummary控件用于在网页、消息框或在这两者中内联显示所有验证错误的摘要
RequiredFieldValidator控件默认检查非空字符串(空格不算在内)。在RequiredFieldValidator关联的表单字段中输入任何字符,该RequiredFieldValidator控件就不会显示它的验证错误信息。
RequiredFieldValidator控件用于要求用户在提交表单前为表单字段输入值。使用Required- FieldValidator控件时,必须设置两个重要的属性:
ControlToValidate——被验证的表单字段的ID。
Text——验证失败时显示的错误信息。
RangeValidator控件用于检测表单字段的值是否在指定的最小值和最大值之间。使用这个控件时,必须设置5个属性:
ControlToValidate——被验证的表单字段的ID。
Text——验证失败时显示的错误信息。
MinimumValue——验证范围的最小值。
MaximumValue——验证范围的最大值。
Type——所执行的比较类型。可能的值有String、Integer、Double、Date和Currency。
CompareValidator控件可用于执行三种不同类型的验证任务。可使用CompareValidator执行数据类型检测。换句话说,可以用它确定用户是否在表单字段中输入了类型正确的值,比如在生日数据字段输入一个日期。
也可以用CompareValidator控件在输入表单字段的值和一个固定值之间进行比较。例如,要建立一个拍卖网站,就可以用CompareValidator检查新的起价是否大于前面的起价。
最后,可以用CompareValidator控件比较一个表单字段的值与另一个表单字段的值。例如,可以使用CompareValidator控件检查输入的会议开始日期值是否小于输入的会议结束日期值。
CompareValidator控件有6个重要的属性:
ControlToValidate——被验证的表单字段的ID。
Text——验证失败时显示的错误信息。
Type——比较的数据类型。可能的值有String、Integer、Double、Date和Currency。
Operator——所执行的比较的类型。可能的值有DataTypeCheck、Equal、GreaterThan、Greater- ThanEqual、LessThan、LessThanEqual和NotEqual。
ValueToCompare——所比较的固定值。
ControlToCompare——所比较的控件的ID。
RegularExpressionValidator控件用于把表单字段的值和正则表达式进行比较。正则表达式可用于表示字符串模式,比如电子邮件地址、社会保障号、电话号码、日期、货币数和产品编码。
这个控件ValidationExpression中可以输入正则表达式来控制用户输入的字符,正则表达式的用处很多。具体可以在网上自己找一些常用的正则表达式看一下
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
。。。。。。。。。。。。。。。。。。。。。。。。。。。
C#中常用的字符串加密,解密方法封装,包含只加密,不解密的方法。
C#中常用的字符串加密,解密方法封装,包含只加密,不解密的方法。
包含多种常见加密解密方式
C#中timer定时器的用法
C#中timer定时器的用法演示
通过Timer定时器每隔1000毫秒(1秒)触发一次事件,C#中timer定时器的用法演示
C#加解密包括了MD5加密,SHA1加密,DES加解密
C#加解密包括了MD5加密,SHA1加密,DES加解密
c#基类 常用数据验证的封装,数字,字符,邮箱的验证
c#基类 常用数据验证的封装,数字,字符,邮箱的验证
* 备注信息: 上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起
* 主要研究erp,cms,crm,b2b,oa等系统和网站的开发,欢迎有共同追求和学的IT人员一起学习和交流。
* 学习和讨论有关asp.net mvc ,Ajax ,jquery ,html/css, xml ,sqlserver ,wpf,IIS以及服务器的搭建和安全性相关技术的交流和学习。
C#打开摄像头抓取照片然后退出
C#打开摄像头抓取照片然后退出
其实就是摄像头在后台抓个图,可以用于监控
c#常用的Datable转换为json,以及json转换为DataTable操作方法
c#常用的Datable转换为json,以及json转换为DataTable操作方法
* 备注信息: 上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起
* 主要研究erp,cms,crm,b2b,oa等系统和网站的开发,欢迎有共同追求和学的IT人员一起学习和交流。
* 学习和讨论有关asp.net mvc ,Ajax ,jquery ,html/css, xml ,sqlserver ,wpf,IIS以及服务器的搭建和安全性相关技术的交流和学习。
asp.net中遍历界面上所有控件进行属性设置
asp.net中遍历界面上所有控件进行属性设置
* 备注信息: 上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起
* 主要研究erp,cms,crm,b2b,oa等系统和网站的开发,欢迎有共同追求和学的IT人员一起学习和交流。
* 学习和讨论有关asp.net mvc ,Ajax ,jquery ,html/css, xml ,sqlserver ,wpf,IIS以及服务器的搭建和安全性相关技术的交流和学习。
企业用的CMS信息发布系统
企业用CMS信息发布系统,值得收藏,下载价值在于你们怎么看。
弹出提示框包含增加,修改,删除,成功或者失败操作提示信息方法源码
弹出提示框包含增加,修改,删除,成功或者失败操作提示信息方法封装。
* 备注信息: 上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起
* 主要研究erp,cms,crm,b2b,oa等系统和网站的开发,欢迎有共同追求和学的IT人员一起学习和交流。
* 学习和讨论有关asp.net mvc ,Ajax ,jquery ,html/css, xml,sqlserver ,wpf,IIS以及服务器的搭建和安全性相关技术的交流和学习。
c#,sql存储过程分页技术实现
c#,sql存储过程分页技术实现
主要运用sql存储过程进行分页实现,在进行分页实现,需要注意一下事项,
* 在项目的根目录下面有一个db文件夹,请认真阅读,里面包含测试数据信息,当然你也可以
* 直接还原数据库即可
kindeditor编辑器在asp.net 中使用介绍
kindeditor编辑器在asp.net 中使用介绍
编辑器功能强大,实现了文本格式,包含图片,视频以及flash以及动态地图的上传实现。上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起
DbHelper第三版, 数据库通吃,不断更新
DbHelper第三版, 数据库通吃,不断更新
Email提示激活
c#注册发送Email提示激活功能,以及找回密码发送邮件功能
C# 反射原理
Description: C# 反射原理的应用,简单的读取和保存数据到xml中,简单去介绍C/S架构中,运用反射原理的优缺点,以及什么时候需要用到反射
三个独具风格的动态菜单源码以及详细说明
三个独具风格的动态菜单源码以及详细说明
<script>
//初始化
var def="1";
function mover(object){
//主菜单
var mm=document.getElementById("m_"+object);
mm.className="m_li_a";
//初始主菜单隐藏效果
if(def!=0){
var mdef=document.getElementById("m_"+def);
mdef.className="m_li";
}
//子菜单
var ss=document.getElementById("s_"+object);
ss.style.display="block";
//初始子菜单隐藏效果
if(def!=0){
var sdef=document.getElementById("s_"+def);
sdef.style.display="none";
}
}
function mout(object){
//主菜单
var mm=document.getElementById("m_"+object);
mm.className="m_li";
//初始主菜单
if(def!=0){
var mdef=document.getElementById("m_"+def);
mdef.className="m_li_a";
}
//子菜单
var ss=document.getElementById("s_"+object);
ss.style.display="none";
//初始子菜单
if(def!=0){
var sdef=document.getElementById("s_"+def);
sdef.style.display="block";
}
}
</script>
站长导航网站程序_v2.1完整程序
本程序郑陆伟个人版权所有,不得以任何方式恶意散播,谢谢合作,违者必究。
后台登陆账号和密码均为:mxiaozheng
V2.1 更新说明
1、修复了后台密码长度和管理员账号长度的相关错误;
2、在后台增加了用户可以自行修改设置弹窗信息的功能;
3、修复了数据库输入字符串不能为空的错误(其实这个错误是可以通过设置清空数据库实现的);
4、强化了SQL注入的防护。
关于本程序的环境配置和基本开发信息:
.Net 2.0+Access数据库;
简单的采用了三层结构开发;
全静态页面,有利于网站优化;
后台管理更加强大和方面,可以随意更换主站网址。
如果是虚拟空间使用本程序,请务必保证空间支持.net 2.0或以上版本,以免程序不能正常使用。
浏览器兼容:IE6-9,Firefox,Chrome内核的所有浏览器,Opera浏览器
技术特点:采用ASP.NET简单的三层架构开发,全站前台实现纯静态页面,利于网站整体优化。
功能描述:本代码是一个站长网址导航和搜索功能,用户可以在后台任意添加自己需要的链接。
注意事项:如果是虚拟空间使用本程序,请务必保证空间支持.net,以免程序不能正常使用。
另外,内置有标准的robots.txt文件,如果不明白,请勿随意修改,以免影响贵站的百度收录和排名。
炫酷的弹出层效果jQuery
CSS+DIV jQuery实现很炫酷的弹出层效果
Excel导入Oracle验证类
带注视Excel导入Oracle验证类
public class ExcelOperation
{
// 如果客户端计算机运行的是英语版本的 Excel,并且当前用户的区域设置配置为英语之外的某个语言,则 Excel 将尝试查找针对所配置语言的语言包。如果没有找到所需语言包,则会报告错误。
CultureInfo oldCultureInfo = Thread.CurrentThread.CurrentCulture;
ExcelInstance excelInstance;
public ExcelOperation(ExcelInstance excelInstance)
{
this.excelInstance = excelInstance;
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
}
。。。。。。。。
WEB 系统中加密解密URL传输参数
网上很多人在问怎么实现Web系统URL传输(表单提交)参数加密。例如:要进行一个用户帐号编辑,要传递用户的ID,URL如下:http://localhost/mysystem/editAccounts.aspx?ID=2
但又不想让别人知道这个用户的ID为2,恶意的使用者可能还会将2修改,改为别的用户ID。
加密传递的参数值可以解决问题。
实现业务系统中的用户权限管理--设计篇
此套系统的重点在于,三张实体表牢牢地抓住了系统的核心成分,而两张映射表完美地映射出三张实体表之间的交互。其难点在于,理解映射表的工作,它记录着关系,并且实现了“组”操作的概念。而系统总体的设计是本着可以在不同的MIS系统中“重用”来满足不同系统的功能权限设置。
VB—C#互转exe工具
VB—C#互转exe工具安装即可使用 真是不虚 资源分享 用的舒服记得回来给个好评 谢谢
怎么修改项目.NET Framework的版本
怎么修改项目.NET Framework的版本
配置文件设置匿名用户禁止登陆
配置文件设置匿名用户禁止登陆 附源码 文档 希望能帮助到你
储存过程分页
储存过程分页源码+注视 希望能帮到你 直接可以拿来用
FCKeditor添加行距操作详细步骤
FCKeditor添加行距操作详细步骤
ajax+jquery实现文件上传(详细注释)
ajax+jquery实现文件上传(详细注释)
Ajax_实现下拉框的联动(详细注释)
Ajax_实现下拉框的联动效果(详细注释) 有源码程序