关于AppendFormat("{0:X2}")

StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0:X2}", 10); Response.Write(sb); 输出A X2表示十六进制格式(大写),域宽2位,不足的左边填0。 [csharp] view plain copy int[] recvLen = { 10, 11, 12, 13, 14, 15, 16, 17, 18 }; StringBuilder uid = new StringBuilder(); for (int i = 0; i <= recvLen.Length – 1; i++)     uid.AppendFormat("{0:X2}\r\n", recvLen[i]); Console.WriteLine(uid.ToString()); 输出: 0A 0B 0C 0D 0E 0F 10 11 12 from:http://blog.csdn.net/joyhen/article/details/41576841

龙生   22 May 2016
View Details

MVC5 网站开发实践 2、后台管理

目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1、建立项目   从这一部分开始做后台管理,首先是基本框架的 一、Data项目 1、项目添加EntityFramework引用 在Data项目的引用上右键-> 管理NuGet程序包。 在弹出的窗口中选择 EntityFramework 安装 2、添加排序枚举 在Data项目上点右键新建文件夹Type。在文件夹内添加类【OrderType】,代码如下

3、添加数据访问类 在Data项目上点右键新建类输入类名【BaseRepository】,这个类主要负责数数据的存取。 类内添加私有成员DbContext _baseDbContext用来在数据库进行增、删、改和查询。 BaseRepository的构造函数public BaseRepository(DbContext dbContext)中dbContext为数据上下文。在该类中写了一些数据的增删改和查询方法。整个代码如下。

4、添加业务逻辑基类 在data项目右键添加【BaseService】,此类通过调用BaseRepository进行数据处理,作为业务逻辑的基类,其他业务类继承自此类。这个类的方法与BaseRepository比较相似,建立此类的主要体现分层的思路,一些数据访问的异常处理应该放在此类中。代码如下:

二、User项目 1、建立管理员模型 在User项目的引用上点右键添加System.ComponentModel.DataAnnotations的引用和Ninesky.Data项目、E的引用。 在User项目上点右键新建文件夹Models,在文件夹中添加类Administrator。代码如下:

2、建立管理员业务逻辑类 在User项目上点右键添加AdministratorService类,该类继承自BaseService。

三、Website项目 1、添加User项目的引用上右键添加对User项目的引用。 2、建立数据上下文 在Site项目上点右键添加类【NineskyDbContext】,继承自DbContext

3、建立数据库连接 打开Web.config文件,在</configSections><appSettings>之间添加数据库的连接

4、建立简单工厂 在Website项目上点右键添加类【ContextFactory】,代码如下:

5、Config区域主界面 在Site项目的Config区域的Controller文件夹上点右键添加Home控制器,类型选择【MVC5控制器-空】。在添加的控制器中添加【Index】 action

在Config区域Views/Share文件夹添加布局页【_Layout.cshtml】 在Index action上右键添加一个空视图 =========================== 代码下载:http://pan.baidu.com/s/1sj6Ya2D from:http://www.cnblogs.com/mzwhj/p/4155896.html

龙生   21 May 2016
View Details

ASP.NET MVC删除数据

单条: WeiXinOpenId weiXinOpenId = _db.WeiXinOpenId.Find(1); _db.WeiXinOpenId.Remove(weiXinOpenId); _db.SaveChanges(); 另一种方法: WeiXinOpenId weiXinOpenId = _db.WeiXinOpenId.Find(1); _db.Entry(weiXinOpenId).State = EntityState.Deleted; _db.SaveChanges(); ================================================ 批量: var openids = _db.WeiXinOpenId.Where(item => item.Uid == uid).ToList(); _db.WeiXinOpenId.RemoveRange(openids); return _db.SaveChanges();

龙生   21 May 2016
View Details

C#webbrowser控件技巧(取得javascript变量值,禁止显示脚本错误)

C#中的webbrowser控件比较好用. 下面本人搜索整理的几个小技巧. 1. 从C#中取得javascript的变量值. using mshtml; using System.Reflection; IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2; IHTMLWindow2 vWindow = vDocument.parentWindow; Type vWindowType = vWindow.GetType(); object xpt = vWindowType.InvokeMember("_xpt", BindingFlags.GetProperty, null, vWindow, new object[] { }); xpt 就是取得的javascript中的变量"_xpt"的值. 2. 禁止显示脚本错误窗口. webBrowser1.ScriptErrorsSuppressed = true; 3. 如何取弹出网页的网址 string newUrl = webBrowser_temp.Document.ActiveElement.GetAttribute("href"); 4. 禁止打开新窗口, 在本窗口打开. 4.1 设置属性. void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //将所有的链接的目标,指向本窗体 foreach (HtmlElement archor in this.webBrowser1.Document.Links) { archor.SetAttribute("target", "_self"); } //将所有的FORM的提交目标,指向本窗体 foreach (HtmlElement form in this.webBrowser1.Document.Forms) { form.SetAttribute("target", "_self"); } } 将 WebBrowser 的 AllowWebBrowserDrop 设为 false 将 WebBrowser 的 WebBrowserShortcutsEnabled […]

龙生   19 May 2016
View Details

解决C#全屏幕截图的实现方法

今天一位同事想写一个全屏幕截图的代码。当然要实现的第一步是能够获取整个屏幕的位图,记得Win32 API的CreateDC, BitBlt等函数可以使用。于是上网查了下,果然屏幕截图用这些函数。但winform已经可以把API都忘记了,所以得寻找一个无Win32 API的实现方式。综合了网上的实现,以及自己的一些设计,实现思路如下: 1. 开始截图时,创建一个与屏幕大小一样的位图,然后用Graphics.CopyFromScreen()把屏幕位图拷贝到该位图上。这是很关键的一步,这样所有的操作就都可以在该位图上进行了,而无实际屏幕无关了。 复制代码代码如下: Code int width = Screen.PrimaryScreen.Bounds.Width; int height = Screen.PrimaryScreen.Bounds.Height; Bitmap bmp = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(bmp)) { g.CopyFromScreen(0, 0, 0, 0, new Size(width, height)); } 2. 接下来为了方便在这之上进行截图,有一个很重要的设计实现方式:用全屏幕窗体代替现有真实屏幕,这样就可以把截图过程的所有操作都在那个窗体上实现(该窗体设置成无边框,高宽等于屏幕大小即可),另外为了显示掩蔽效果(只能正常显示选择的部分屏幕内容,而其实部分用一个如半透明层覆盖),就添加一层半透明位置位图。具体代码如下: 复制代码代码如下: Code public partial class FullScreenForm : Form { private Rectangle rectSelected = Rectangle.Empty; private bool isClipping = false; private Bitmap screen; private Bitmap coverLayer = null; private Color coverColor; private Brush rectBrush = null; private Bitmap resultBmp = null; public FullScreenForm(Bitmap screen) { InitializeComponent(); int width = Screen.PrimaryScreen.Bounds.Width; int […]

龙生   19 May 2016
View Details

C# webBrowser强制在本窗口打开,禁止在新窗口打开的解决方案

有时需要用WebBrowser加载URL,来实现某些功能。而这时,我们就不希望所打开的页面中的链接,在新窗口中打开,因为这样的话,实际上是用系统默认的浏览器打开了,从而脱离了你的WebBrowser,也就不能被你所控制了。 要解决这个问题,可以使用下面的方法: 第一种解决该当推荐使用 [code=csharp]  private void webBrowser1_NewWindow(object sender, CancelEventArgs e) { string url = ((WebBrowser)sender).StatusText; webBrowser1.Navigate(url); e.Cancel = true; }[/code] StatusText就是要跳转到的Url e.Cancel = true;是取消新窗口打开, 第二种方法 假设WebBrowser的Name是 webBrowser1 简单方法-利用加载完成事件将所有的链接和form的target值改为"_seft": [code=csharp]private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //将所有的链接的目标,指向本窗体 foreach (HtmlElement archor in this.webBrowser1.Document.Links) { archor.SetAttribute("target", "_self"); } //将所有的FORM的提交目标,指向本窗体 foreach (HtmlElement form in this.webBrowser1.Document.Forms) { form.SetAttribute("target", "_self"); } } 取消新窗口事件 ? private void webBrowser1_NewWindow(object sender, CancelEventArgs e) { e.Cancel = true; }[/code] 将 WebBrowser 的 AllowWebBrowserDrop 设为 false(禁止拖放) 将 WebBrowser 的 WebBrowserShortcutsEnabled 设为 false(禁止使用快捷键)将 WebBrowser 的 IsWebBrowserContextMenuEnabled 设为 false(禁止右键上下文菜单)   from:http://www.sufeinet.com/thread-2970-1-1.html

龙生   19 May 2016
View Details

c# Winform 开发分屏显示应用程序

分屏显示即可把一台主机内运行的多个程序分别显示在不同的两个(或多个)屏幕上。目前市面上主流的显卡都支持分屏显示(显示双屏幕),如果需要显示2个以上的屏幕,则应使用“拖机卡”类的硬件。   设置分屏显示的两种方法如下: 1、用两个显卡连接两台显示器,进入系统后,分清楚哪一个是主显卡,在桌面空白处右键单击,点属性,然后在窗口中点“设置”选项卡,会看到有两个显示,分别是1(主显卡)和2(副显卡),点击那个2,在下面的“将windows桌面扩展到该监视器”打上对号,确定后,你试着把鼠标往主显示器右边界移动,再移动,鼠标会跑到第二台显示器上去了,这样,同样运行几个程序,分别将它们的窗口拖拽到两个显示器的区域中就可以了,这实际上是将桌面扩展了一下。 2、使用专门的硬件。可以使用“一拖多”的拖机卡,只要将设备插入usb口中,将设备上引出的两个ps/2口分别接鼠标和键盘,主机中还是有两块显卡,然后再装上这个设备的专用软件,重启后,经过简单的配置,即可实现“完全”独立的两个系统。   所谓的分屏或多屏软件,就是把软件中的多个窗体,在主屏幕运行,但是把各个窗体(坐标)移动到各个扩展屏幕位置上如下图所示:   主屏幕 (MainForm) index=0 扩展屏幕1 (Form1) index=1 扩展屏幕2 (Form2) index=… 扩展屏幕3 (Form3) index=…     以下介绍最常用的双屏幕显示,也就是左右模式的屏幕显示的方法。 WinForm 的实现办法: 利用WinForm中的Screen类,即可比较方便地实现多窗体分别在多个屏幕上显示。   获取当前系统连接的屏幕数量: Screen.AllScreens.Count(); 获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(this).DeviceName; 获取当前屏幕对象:Screen CurrentScreen = Screen.FromControl(this); 获取当前鼠标所在的屏幕:Screen CurrentScreen = Screen.FromPoint(new Point(Cursor.Position.X, Cursor.Position.Y)); 让窗体在第2个屏幕上显示:      this.Left = ((Screen.AllScreens[1].Bounds.Width – this.Width) / 2); this.Top = ((Screen.AllScreens[1].Bounds.Height – this.Height) / 2); 把任何窗体显示在任何屏幕的方法: [csharp] view plaincopy //在窗体的OnLoad事件中调用该方法 protected void Form1_OnLoad(…) {     showOnMonitor(1);//index=1 } private void showOnMonitor(int showOnMonitor) {     Screen[] sc;     sc = Screen.AllScreens;     if (showOnMonitor >= sc.Length) {         showOnMonitor = 0;     }     this.StartPosition = FormStartPosition.Manual;     this.Location = new Point(sc[showOnMonitor].Bounds.Left, sc[showOnMonitor].Bounds.Top);     // If you intend the form to be maximized, change it to normal then maximized.     this.WindowState = FormWindowState.Normal;     this.WindowState = FormWindowState.Maximized; } 对WPF窗体来说,只要简单的更改即可: 首先要添加对 System.Windows.Forms 和 System.Drawing 的引用 简单的参考代码如下: [csharp] view plaincopy protected override void OnStartup(StartupEventArgs e)         {             base.OnStartup(e); […]

龙生   18 May 2016
View Details

artDialog文档

artDialog —— 经典的网页对话框组件,内外皆用心雕琢。 支持普通与 12 方向气泡状对话框 完善的焦点处理,自动焦点附加与回退 支持 ARIA 标准 面向未来:基于 HTML5 Dialog 的 API 支持标准与模态对话框 丰富且友好的编程接口 能自适应内容尺寸 仅 4kb (gzip) 文档导航 引入 artDialog 快速参考 普通对话框 模态对话框 气泡浮层 添加按钮 控制对话框关闭 给对话框左下脚添加复选框 阻止对话框关闭 不显示关闭按钮 创建 iframe 内容 方法 show([anchor]) showModal([anchor]) close([result]) remove() content(html) title(text) width(value) height(value) reset() button(args) focus() blur() addEventListener(type, callback) removeEventListener(type, callback) dialog.get(id) dialog.getCurrent() 选项 内容 title content statusbar 按钮 ok okValue cancel cancelValue cancelDisplay button 外观 width height skin padding 交互 fixed align quickClose autofocus zIndex 事件 onshow onbeforeremove onremove onclose onfocus onblur onreset 高级 id […]

龙生   12 May 2016
View Details

攻击者开始利用 ImageMagick 漏洞攻击网站

安全研究人员称,攻击者没有浪费一点时间,开始利用刚刚曝出的ImageMagick高危漏洞去执行恶意代码以控制网站的Web服务器。ImageMagick是一个广泛使用的图像处理库,它的一个高危漏洞允许远程代码执行,攻击者上传植入恶意代码的图像,Web服务器在处理时能被利用执行攻击者选择的代码。开发者尚未释出修正漏洞的补丁。CloudFlare的研究员 John Graham-Cumming在官方博客上称,攻击者正在利用该漏洞攻击网站。   from:http://www.oschina.net/news/73296/inside-imagetragick-the-real-payloads-used-to-hack-websites

龙生   11 May 2016
View Details
1 269 270 271 432