程序小帖士

 Asp.Net     Sql数据库

1、当在VS2005中卸载一个现有的项目再移除项目后,编译网站时会出现错误——项目""不在解决方案中,不能编译,解决方法以下:
    右键网站->属性页->引用->把列表中刚移除的项目的引用删除->OK^^

2、当用cookies保存中文时,需要用到HttpUtility.Encode、Decode对中文进行编码,不然会乱码。详细可参考以下网址:



http://support.microsoft.com/default.aspx?scid=kb;zh-cn;313282 3、如何在XHTML中循环反向输出XML的节点内容? 解决方法是需在xslt文件中设置xsl:sort属性,例如:

<xsl:for-each select="//DailyEnglish/DailyNode">
   
<xsl:sort order="descending"/>   //设置循环方式
   
<li>
        
<xsl:value-of select="@Date"/>
        
<xsl:value-of select="@Chn"/> 
   
</li>
</xsl:for-each>

4、轻松筛选掉DataTable中的重复行
DataView dv = dt.DefaultView;  // dt是DataTable实例
dt = dv.ToTable(true);         //ToTable()函数的参数distinct设为true,默认false
ToTable()函数的其中一个重载声明如下:
public DataTable ToTable (
    
bool distinct,
    
params string[] columnNames
)


5、设置随机数种子

System.Random random = new Random(Guid.NewGuid().GetHashCode());

6、获取数据库用户表

SELECT OBJECT_NAME(id) AS OBJECT_NAMEUSER_NAME(uid) AS USER_NAME
      type AS TYPE, crdate AS DATE_CREATED
FROM sysobjects
where xtype='U' and name<>'dtproperties'
order by [name]

7、获取数据库用户视图

SELECT OBJECT_NAME(id) AS OBJECT_NAMEUSER_NAME(uid) AS USER_NAME
      type AS TYPE, crdate AS DATE_CREATED
FROM sysobjects
WHERE (type = N'V'AND (permissions(id) & 4096 <> 0AND (ObjectProperty(id, 
      N'IsMSShipped'= 0)
order by [name]

8、获取表的字段定义信息

Code

9、获取表或视图的字段名称

Code

10、获取所有数据库名

SELECT Name FROM Master..SysDatabases ORDER BY Name 

11、获取系统所有定义颜色

Array colors = System.Enum.GetValues( typeof(KnownColor) );
foreachobject colorName in colors )
{
    defaultColors.Add(Color.FromName(colorName.ToString()));

}


 12、匹配url的正则表达式

(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])

 13、匹配特定的html标签 

\<(?=/?(?:sub|sup|b)[\s\>])[^>]*?>    //匹配 sup, sub, b 标签,可用于过滤特定标签
14、用javascript防止重复提交表单
function SubmitOnce(btn)   
{
  btn.value = "正在提交";
  btn.disabled=true;
}

使用时,只要把button的OnClientClick属性设为SubmitOnce(this),并设UseSubmitBehavior为false,不然不能触发按钮事件。UseSubmitBehavior需设为false的原因,可参考以下两篇文章:
禁用(灰化) Button 后提交的问题
ASP.Net随想_服务器控件的页面请求模型

15、在关闭页面前提示

window.onbeforeunload=function(){
    
return "the text will lose."//返回文本会在弹出对话框中显示
}
onbeforeunload事件触发的时候会弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。

事件函数可以设一个返回值作为该对话框的显示文本。

16、动态输出用户控件内容

假如有用户控件MyUserControl,具有属性GroupId,现在需要在单击页面上某按钮后,动态输出控件的HTML内容到word中,可以使用以下代码:

using (StringWriter output = new StringWriter())
{
      Page tPageHoder = new Page();   // 创建用户控件加载处理页面
      MyUserControl control = (MyUserControl )tPageHoder.LoadControl("~/Module/MyUserControl.ascx");
      control.GroupId = groupId;   // 属性赋值
      tPageHoder.Controls.Add(control);   // 把用户控件加载页面控件树
      HttpContext.Current.Server.Execute(tPageHoder, output, false);   // 执行页面处理流程,并把最后内容输出保存
      PageHelper.ExportToWord(output.ToString());  // 输出到word
}

17、Sql Server数据库由单用户模式改为多用户模式

代码
USE master;
GO
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
FROM master..sysprocesses
WHERE dbid=DB_ID('[DBName]');     --[DBName]是把数据库修改为单用户模式的执行数据库

EXEC(@SQL);
GO
ALTER DATABASE [DBName] SET MULTI_USER;  --这里[DBName]是要修改为多用户的数据库名
原文地址:https://www.cnblogs.com/vento/p/982673.html