木子屋 Dnawo's BLOG

分类:Web编程

共 944 篇

要自动化就必须简单化,不要把简单的问题复杂化

假如有如下一张表: 我们用工具为他生成了基本的操作语句: 但在实际运用中,通常不是把CatalogName直接放在Products表中的,Products表中只存放CatalogID的值,表结构如下: 同样也用工具生成了基本的操作语句: 但在使用中有个问题,我们希望在用户界面上显示CatalogName,而不是CatalogID,这时我们很"聪明"的想到,多表查询嘛,很简单: 这只是个简单的例子,实际项目中很多表间的字段都是关联的,于是自动化工具的恶梦就来了,不论他怎么智能,永远满足不了需求,只好手工写了,我们又成功的理由充分的说服自己成了代码机器-_- 要自动化就必须简单化,上边例子还是用工具生成各表的基本操作语句,对于CatalogName,可在需要时再调用Catalog表的操作语句另外进行查询:

ASP.NET页面"不能"获取HTML表单post提交的参数值

新建一个ASP.NET页面,从工具箱中拉一个HTML的Input(Text)控件和标准Button控件,并写相关代码: Req.aspx: Req.aspx.cs: 怎么提交,Request.Form始终没有值。后来发现,给Text1加上runat="server",就能正常获取值了-_-,今天在同事的提醒下,发现原来VS默认没有给控件添加name属性,添加上去就正常了: 那为什么加上runat="server"也可以呢?查看了下网页源代码,发现加了runat="server"后,在生成的源代码中自动加上了name属性!

ASP.NET全局资源文件(App_GlobalResources)使用示例

我们可以将字符串、图片等资源存放在全局资源文件中,这样ASP.NET网站所有.aspx文件中都可以使用这些资源,例如: 使用示例 或 为不同的语言选择资源文件 有时,同一个界面需要有不同的语言版本,全局资源文件可以帮助我们解决这个问题,只需为其他语言建立相应资源的文件即可,例如: Mzwu.en-US.resx:专用于英语(美国)的资源文件。 Mzwu.zh-CN.resx:专用于中文(中国)的资源文件。 Mzwu.es-AR.resx:专用于西班牙语(阿根廷)的资源文件。 Mzwu.ro-RO.resx:专用于罗马尼亚语(罗马尼亚)的资源文件。 然后只需为ASP.NET 网页指定区域性和 UI 区域性即可,程序会自动选用相应的资源文件。…

SWFUpload事件触发顺序研究

SWFUpload(2.2.0)常见的事件有: 正常上传文件日志: swfupload_loaded_handler: file_dialog_start_handler: file_queued_handler: PHPnow-1.5.4.zip file_dialog_complete_handler: 1,1,1 upload_start_handler: upload_progress_handler: PHPnow-1.5.4.zip,0,15930991 upload_progress_handler: PHPnow-1.5.4.zip,32768,15930991 upload_progress_handler: PHPnow-1.5.4.zip,360448,15930991…

自定义vs2008代码段

①.将以下代码保存为myshow.snippet(UTF-8编码): ②.选择菜单"工具→代码段管理器",导入myshow.snippet; ③.使用示例: 其他说明 ·连续按两次Tab键可输入代码段; ·按一次Tab键切换到下一个变量,且该变量处于选中状态; ·按Enter键完成代码段输入并将光标定位到$end$位置; ·$selected$变量表示在IDE环境中选中的代码段,这个变量通常在外侧代码段中使用; ·$end$变量表示输入代码段后光标所处位置;

C#查找一个byte数组在另一个byte数组第一次出现位置

/// <summary> /// 查找一个byte数组在另一个byte数组第一次出现位置 /// </summary> /// <param name="array">被查找的数组</param> /// <param name="array2">要查找的数组</param> /// <returns>找到返回索引,找不到返回-1</returns> static int FindIndex(byte array, byte array2) { int i, j; for (i = 0; i < array.Length;…

.NET数据集(xsd)运行出错:标准表达式中数据类型不匹配

主要是因为参数集中参数顺序和SQL语句参数顺序没有对应而导致的。例如本例SQL语句: 而参数集中参数顺序: 将SupplierID和ProductName参数位置对调就正常了。 说明 上述问在MSSQL中并不存在,这是由于MSSQL的SQL语句参数都有名称,传入时是以参数名对应的,而ACCESS的SQL语句参数都用?表示,传入时只能以位置对应,所以上面对调的实际是类型,而不是SupplierID和ProductName参数,名称在ACCESS中其实没多大意义。 vs为Insert语句生成的参数名大都没有意义的,得手工修改,但重新配置Insert语句后这些修改都将丢失,得再次修改(仅针对Insert语句,Update、Delete、Select不会),这也是ACCESS特有的:…

C#判断中英文混合字符串长度及截取函数

using System.Text.RegularExpressions; using System.Text; /// <summary> /// 字符串长度(按字节算) /// </summary> /// <param name="str"></param> /// <returns></returns> static int StrLength(string str) { int len = 0; byte b; for (int i = 0; i < str.Length; i++) { b = Encoding.Default.…

多条件查询 VS 参数化查询

一直以来对参数化查询有个误解:SqlCommand对象中,给Parameters添加参数的个数必须和CommandText中使用的变量个数相等。今天测试发现: ·CommandText中使用的变量在Parameters中必须有对应的参数; ·Parameters中参数的个数可以多于CommandText中使用的变量个数; 道理很简单,你在程序中使用的变量都必须先声明,但声明的变量没有要求说一定都得在程序中使用。 上边例子中,当categoryID=-1时,声明的@CategoryID变量就是多余的,但并不影响程序运行,这样在多条件查询下使用参数化查询写代码就简单多了。