获取Url传来的参数
String action = Request["action"];
-----------------------------------------------------------------
数据库表清零
dbcc checkident(表, reseed, 0)
-----------------------------------------------------------------
js脚本调试,在js中加入debugger;在附加到进程中双击相应的IE选择Script脚本调试
在外面IE中点提交即可进入断点 
-----------------------------------------------------------------
向删除操作标签加入操作提示
WebControl lbtDelete = e.Row.FindControl("lbtDel") as WebControl;
String alertMsg = "return ShowDialog_Delete_Confirm();";
lbtDelete.Attributes.Add("onclick", alertMsg);
-----------------------------------------------------------------
12.Panel 横向滚动,纵向自动扩展
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
-----------------------------------------------------------------
服务器端弹出alert对话框,并使控件获得焦点
public void Alert(string str_Ctl_Name,string str_Message,Page page)
{
page.RegisterStartupScript("","<script>alert('"+str_Message+"');document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");
}
-----------------------------------------------------------------
根据值转换
SELECT dbo.TGuestBook_List.*, dbo.TGuestBook_Class.ClassName,
 case Region when 'I' then '内部' when 'O' then '外部' end as RegionName    
FROM dbo.TGuestBook_List LEFT OUTER JOIN
      dbo.TGuestBook_Class ON
      dbo.TGuestBook_List.ClassNo = dbo.TGuestBook_Class.ClassNo
-----------------------------------------------------------------
数据列表的超链接
<asp:HyperLink id="hlnReply" runat="server" NavigateUrl="AutoReplyMaintenance.aspx?aa=<%#Bind('SuggestNo') %>" Target="_self" >回复7</asp:HyperLink>
<asp:LinkButton id="lbtReply" runat="server" CausesValidation="false"
CommandArgument="<%#Bind('SuggestNo') %>" CommandName="cmdReply" Text="<a href='AutoReplyMaintenance.aspx' >回复</a>"></asp:LinkButton>
-----------------------------------------------------------------
ASP.NET中文显示乱码之解决方法  在目录中保存为utf-8类型的文件
所属分类:生活情感  |  2006-11-08 12:24:19 
 
ASP.NET很灵活,这归功于它采用文本文件方式的配置方式. 另外的那种用页面标识符的方法应该是从ASP延续下来的.     写ASP+程序时候碰到中文显示问题,运行后发现ASP+从数据库中读出来的中文全部变成了?????,解决办法: 

  方法一: 

  在config.web中设置globalization段
<configuration>
<globalization 
requestencoding="utf-8" 
responseencoding="utf-8" 
/> 
</configuration>

  可以是utf-8、gb2312等等。

  方法二:

  后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这
个问题的文章,方法为添加<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的
<%@ page contentType="text/html;charset=gb2312"%>
赶紧测试了一下,果然OK!!!

  例子如下面所示:
<%@ CODEPAGE = "936" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>
<%@ Import Namespace="System.Globalization" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
 

-----------------------------------------------------------------
1. 如何动态加载用户控件。经常会遇到这样的问题,需要根据输入的参数来决定是否或者是加载哪一个ascx,也就是ms所说的用编程的方式加载用户控件。
常用的做法是在aspx加一个PlaceHolder---VoteControlPH,
 private void LoadVoteControl()
  {
     Control  voteControl = (UserControl)LoadControl("Vote.ascx");
     voteControl.ID = "VotePanel";
     VoteControlPH.Controls.Add(voteControl);
  }

-----------------------------------------------------------------
 /// <returns>字符串长度</returns>
 public static int GetLength(string strSource)
 {
 return Encoding.GetEncoding("GB2312").GetBytes(strSource).Length;
 }
//汉字串截取
public static string GetSubString(string original, int width)
{
    int len = original.Length;
    if (Encoding.GetEncoding("GB2312").GetBytes(original).Length < width)return original;
    int clen = 0;  //当前长度 字符数
    int cwidth = 0;//当前宽度 非Utf-8计算的长度
    while (clen < len && cwidth < width)
    {
        if ((int)original[clen] > 127) cwidth++;
        clen++;
        cwidth++;
    }
    //如果最后一个是汉字可能会超出长度,要再截掉最后一个字。
    if (Encoding.GetEncoding("GB2312").GetBytes(original.Substring(0, clen)).Length > width)
        clen--;
    return original.Substring(0, clen);
}
-----------------------------------------------------------------
11、利用CustomValidator来验证textbox的长度.  
<script language="Javascript">
    function ClientValidation(source,value)
    {
        var str = value.Value;
        var len = 0;
        for(var i=0;i<str.length;i++)
        {
            if(str.charCodeAt(i)<128)
                len++;
            else
                len+=2;
        }
        if(len<5)  //长不能大于5
            value.IsValid = true;
        else
            value.IsValid = false;
    }
</script>
<asp:CustomValidator id="CustomValidator1" ControlToValidate="TextBox2"
ClientValidationFunction="ClientValidation" Runat="server" ErrorMessage="长度6-20
位"></asp:CustomValidator>
该文章转载自网络大本营:http://www.xrss.cn/Info/14774.Html

=====对上面进行改进以达到通用=====
//判断textBox是不是为空
//source.VerifyLen 是手工加在校验控件本身的属性
//source 是界面上的校验控件本身
//value  是待校验控件的值 
function ClientValidation(source,value)  
{  
   var str = value.Value;  
   var len = 0;
   var maxLen = source.VerifyLen;  
   for(var i=0; i<str.length; i++)  
   {  
       if(str.charCodeAt(i) < 128)  
          len++;  
       else  
          len += 2;  
   }  
   if(len <= maxLen)  
      value.IsValid = true;  
   else  
      value.IsValid = false;
}
使用例子:
<asp:CustomValidator VerifyLen="20" ID="cvdEditClassName" runat="server" ControlToValidate="txtEditClassName" ErrorMessage="类别名称必须为1到20字符,请重新填写!" SetFocusOnError="True" Display="Dynamic" ClientValidationFunction="ClientValidation"></asp:CustomValidator>
-----------------------------------------------------------------
存储过程中使用函数
create proc PDown_ExtendedInfo_Compare
(
 @AttributeID INT,
 @AttributeValue VARCHAR(200)
)
AS

DECLARE @ExtendedAttributeValue VARCHAR(200)
DECLARE @Result INT

DECLARE info_cursor CURSOR FOR SELECT [ExtendedAttributeValue] FROM [TDown_ExtendedInfo] WHERE AttributeID=@AttributeID

OPEN info_cursor

FETCH NEXT FROM info_cursor
INTO @ExtendedAttributeValue

WHILE @@FETCH_STATUS = 0
BEGIN
 SELECT @Result = PATINDEX('%'+@ExtendedAttributeValue+'%',@AttributeValue)
 
 IF(@Result = 0)
 BEGIN
  UPDATE [TDown_ExtendedInfo] SET [ExtendedAttributeValue]=''  WHERE CURRENT OF info_cursor
 END
 FETCH NEXT FROM info_cursor
    INTO @ExtendedAttributeValue
END

CLOSE info_cursor
DEALLOCATE info_cursor

GO
-----------------------------------------------------------------
为页面控件添加属性:直接在Html中控件的定义中写自己的属性名和值,在函数中
直接引用控的该属性
-----------------------------------------------------------------
在<head>内引用.js后无法正常显示页面上的控件,原因是<script>不能简写略掉</script>
-----------------------------------------------------------------
加入Google搜索功能
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2603730-1";
urchinTracker();
</script>
-----------------------------------------------------------------
网页符号转换
static ContentUtil()
{
    leachOutStrings = new string[] { " ", "&nbsp;" };
    leachStrings = new string[] { "&", "&amp;", "<", "&lt;", ">", "&gt;", "\r\n", "<br/>", "\n", "<br/>", " ", "&nbsp;", "\"", "&quot;", " ", "'" };
}

  符号    转义符号
  " "     "&nbsp;"
  "&"     "&amp;"
  "<"     "&lt;"
  ">"     "&gt;"
  "\r\n"  "<br/>"
  "\n"    "<br/>"
  "\""    "&quot;"

-----------------------------------------------------------------
动态加事件
BtnAll.Attributes.Add( "onclick" , "javascript:return checkAllPast()" ) ;
----------------------------------------------------------------------------
存储过程中获取增加记录时自动生成的ID
insert into .....
SET @auto_id = @@IDENTITY   
----------------------------------------------------------------------------
让按钮事件执行完客户端事件后执行服务器端事件
private void Page_Load(object sender, System.EventArgs e)
{
   this.OK.Attributes.Add("OnClick","return submitclick()");
}
private void InitializeComponent()
{   
   this.OK.Click += new System.Web.UI.ImageClickEventHandler(this.OK_Click);
}

function submitclick()
{
 var productname = document.Form1.ProductName.value;
if(productname != "3")
    {
        alert("请输入产品名称!");
        document.all.ProductName.focus();
        return false;
    }
return true;
}
----------------------------------------------------------------------------
有页面中调用cs中的函数 <% %>是符号,加'='号为赋值
<%=ToolHelper.GetWebName()%>
----------------------------------------------------------------------------
Js中比较两日期大小
if(compareDate(document.all.BeginTime_txt.value,document.all.EndTime_txt.value)==false)
{
 alert("结束日期小于开始日期");
 document.all.BeginTime_txt.focus();
 return false;
}
----------------------------------------------------------------------------
存储过程中转换类型
@CatalogId int
Cast(@CatalogId as nvarchar(20))
----------------------------------------------------------------------------
分页查询存储过程
CREATE PROCEDURE sp_getpage
(
 @ColList nvarchar(4000)='', --显示字段
 @Table nVARCHAR(4000)='',--查询的表,from后面的语句
 @Where nvarchar(4000)='',--查询条件,where后面的语句
 @Sort nVARCHAR(255)='',--排序条件,不带表名的字段名
 @PageSize int=0,--每页记录数
 @PageIndex int=0,--当前页码
 @ID nVARCHAR(255)='',--ID字段,例如"memberid"
 @ID_WithTableName  nVARCHAR(255)='',--带有表名前缀的ID字段名,例如"t_member_user.memberid"
 @DoCount bit=0 --是否获取记录数
)

AS

DECLARE @Sql nVARCHAR(4000)

if(@Where='')
 set @Where='1=1'
if(@DoCount=1)
begin
   if(@ID_WithTableName='')
 set @ID_WithTableName=@ID
 set @Sql='select count('+@ID_WithTableName+') as countint from '+@Table+' where '+@Where
 print @Sql
end
else
Begin
 SET @Sql='select '+@ColList+'  from '+ @Table +' where  '+@Where
 SET @Sql='SELECT   TOP '+CAST(@PageSize AS VARCHAR(20))+' '+'*  FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN
(SELECT   TOP '+CAST((@PageSize*(@PageIndex-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') s ORDER BY '+@Sort+') ORDER BY '+@Sort
 End
print @Sql

EXEC(@Sql)
----------------------------------------------------------------------------
ASP.NET服务器控件在Page中发出客户端脚本块,
Page.RegisterStartupScript("","<script>if(confirm('"+GetText("COMMON","ADD_CONTINUE")+"')){this.location.href='AddMemberStockpile.aspx';}else{this.location.href='ManageMemberStockpile.aspx';}</script>");
Page.RegisterStartupScript("","<script>alert('你注册的会员号还没审核通过,暂时不能登录工作室!');window.location.href='/index.aspx';</script>");
----------------------------------------------------------------------------
返回上一页 history.go(-1);
----------------------------------------------------------------------------
利用MaintainScrollPositionOnPostback属性IE的滚动条移动到原来的地方
<%@ Page Language="VB" AutoEventWireup="false" MaintainScrollPositionOnPostback="true"
----------------------------------------------------------------------------
private void Scroll()
{
   string s="<script>function window.onload(){document.all('"+this.txtCode.ClientID+"').scrollIntoView();}</script>";
   Page.RegisterStartupScript("",s);
}
----------------------------------------------------------------------------
//检验连接是否有效
function getXML(URL) 
{
 var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
 xmlhttp.Open("GET",URL, false); 
 try
 { 
  xmlhttp.Send();
 }
 catch(e){}
 finally 
 {
  var result = xmlhttp.responseText;
  if(result) 
  {
   if(xmlhttp.Status==200)
   {
    return(true);
   }
   else 
   {
    return(false);
   }
  }
  else 
  {
   return(false);
  }
 }
}
----------------------------------------------------------------------------
<script language="javascript">
function LoadFreight(id)//id为传进的参数
{
var url='url.aspx?tid='+id+'';
window.open(url,'','scrollbars=yes,top=0,left=0,resizable=no,status=no,toolbar=no,menubar=no,location=no,width=430,height=600');
}
</script>

----------------------------------------------------------------------------
将输入的关键字转换为拼音
KeyWord_S1=KeyWord.Value.ToString().Trim();                      //得到关键字信息
Project.Component.tkChinese tk=new Project.Component.tkChinese();//转换为拼音
KeyWord_P_S1=tk.Corvert(KeyWord_S1);     //取得关键字
----------------------------------------------------------------------------
在aspx页面中插入另一个aspx页面
<div class="login" style="height:150px;">
   <h1>会员登录</h1>
   <iframe width="100%" height="100%" frameborder="0" scrolling="no" src="/member/frmLogin.aspx"></iframe>
</div>
----------------------------------------------------------------------------
动态引用外部数据源
SELECT n.*
FROM OpenRowset('Microsoft.jet.OLEDB.3.51',
    'c:\nwind.mdb';'admin';'pwd', authors)
AS n

SELECT a.*
FROM OpenRowset('MSDASQL', 'Driver=SQL Server;Server=Test;
    UID=user1;PWD=pwd', pubs.dbo.authors)
AS a
----------------------------------------------------------------------------
一条语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by a排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
10 = 每页记录数
20 = (当前页 + 1) * 每页记录数
以上语句即可以实现分页,但是最后取出的结果排序是升序,如果需要结果集为降序(例如时间),则有两种方法可以处理
1.使用以下语句,但效率可能要降低一些
select * from 表名 b, (select top 10 主键字段,排序字段 from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a order by 排序字段 ) c where b.主键字段 = c.主键字段 order by c.排序字段 desc 
实例:
select top 5 b.* from
 (select top 20 id from t_member_user order by id desc) a,
 t_member_user b where b.id = a.id order by a.id
----------------------------------------------------------------------------
随机提取10条记录的例子:
SQL Server:Select Top 10 * From 表 Order By NewID()
Access:Select Top 10 * From 表 Order By Rnd(ID) 
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select Top 10 * From 表 Order BY Rnd(Len(UserName))
MySql:Select * From 表 Order By Rand() Limit 10
----------------------------------------------------------------------------
随机选择5条记录
Select Top 5 * From t_member_user Order By NewID()
----------------------------------------------------------------------------
让控件移动
<scrolldelay=#> <marquee scrolldelay=500 scrollamount=100>啦啦啦,我走一步,停一停!</marquee>
----------------------------------------------------------------------------
连接串加解密
加密 = Convert.ToBase64String(System.Text.Encoding.GetEncoding("GB2312").GetBytes(txtValue.Text));
解密 = System.Text.Encoding.GetEncoding("GB2312").GetString(Convert.FromBase64String(txtValue.Text));

----------------------------------------------------------------------------
2008-1-8 测试b/s c/s 架构s为.Net及Java的方式调用
Java方式:对方提供路径及wsdl文件,在(c或b一样)项目中加入Web引用,输入该地址如:
          http://192.168.16.69:8080/TestXfire/webServices/echoService?wsdl
          然后在加边改一下类名,就可以在程序中调用:
          localhost.Service sv = new localhost.Service(); sv.SendMsg(3);
C# 方式:做一个wsdl文件改里面的WebService地址,在(c或b一样)项目中加入Web引用
          然后在加边改一下类名,就可以在程序中调用:
          localhost.Service sv = new localhost.Service(); sv.SendMsg(3);
在PDA上调用:
   先让pda可以上局域网,安装一个虚拟网卡,设置在一网段IP,DNS设成本机的IP
   这样就可以上局域网

本地C#服务添加Web引用出错时,要注意目录安全高设为可匿名访问,路径有读写访问
权限,同时IIS的设置要指定'执行权限'为纯脚本;应用程序池为相应的.net2.0
----------------------------------------------------------------------------
读出SQLServer sp 版本
SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
----------------------------------------------------------------------------
C#程序调用外部程序

System.Diagnostics.ProcessStartInfo  Info  =  new  System.Diagnostics.ProcessStartInfo();
//设置外部程序名
Info.FileName  =  "notepad.exe";
//设置外部程序的启动参数(命令行参数)为test.txt
Info.Arguments  =  "test.txt";
//设置外部程序工作目录为  C:\
Info.WorkingDirectory  =  "C:\\";
//声明一个程序类
System.Diagnostics.Process  Proc  ;
try
{
  Proc  =  System.Diagnostics.Process.Start(Info);
}
catch(System.ComponentModel.Win32Exception  e)
{
  Console.WriteLine("系统找不到指定的程序文件。\r{0}",  e);
  return;
}

----------------------------------------------------------------------------
Socket编程
new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //udp
new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//tcp
new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Igmp);  //Igmp
----------------------------------------------------------------------------
事件与委托
public delegate void WaveBufferEventHandler(object sender, WAVEHDR hdr);

public event WaveBufferEventHandler WaveCaptured;
if (this.WaveCaptured != null)
{
   this.WaveCaptured(this, hdr);
}

this.wi.WaveCaptured += new WaveBufferEventHandler(this.wi_WaveCaptured);
private void wi_WaveCaptured(object sender, WAVEHDR hdr)
{
   ......
}
----------------------------------------------------------------------------
PPC平台中取程序当前目录
string path =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
string name = path + "\\g726lib.dll";
----------------------------------------------------------------------------
事件
public delegate void KeyPressedEventHandler(Keys key);
private KeyPressedEventHandler KeyPressedEvent;

public event KeyPressedEventHandler KeyPressed
{
 add
 {
  KeyPressedEvent = (KeyPressedEventHandler)System.Delegate.Combine(KeyPressedEvent, value);
 }
 remove
 {
  KeyPressedEvent = (KeyPressedEventHandler)System.Delegate.Remove(KeyPressedEvent, value);
 }
}
----------------------------------------------------------------------------
一个构造函数调用另一个构造函数,用的是this
public WaveStream(string fileName) : this(new FileStream(fileName, FileMode.Open))
{}
public WaveStream(Stream S)
{}
----------------------------------------------------------------------------
// C# 预定议的使用
#define DEBUG#define VC_V7
using System;
public class MyClass
{
    static void Main()
    {
#if (DEBUG && !VC_V7)
        Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
        Console.WriteLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
        Console.WriteLine("DEBUG and VC_V7 are defined");
#else
        Console.WriteLine("DEBUG and VC_V7 are not defined");
#endif
    }
}
使用全局定义:打开项目属性->生成页->常规 条件编译符号:默认是PocketPC,在后面加上“;CF”就定义了CF
----------------------------------------------------------------------------
推的意思就是项目经理将主动发布信息,不管通过电话、邮件还是书面方式,保证将信息传达到每个人。这种情况适合小项目,人少;拉的意思就是项目经理就是一个类似web服务器,你自己需要什么信息就去问他
----------------------------------------------------------------------------
//运行程序
[DllImport("CoreDll.DLL")]
private static extern int CreateProcess(
    String imageName,
    String cmdLine,
    int lpProcessAttributes,
    int lpThreadAttributes,
    Int32 boolInheritHandles,
    Int32 dwCreationFlags,
    int lpEnvironment,
    int lpszCurrentDir,
    int si,
    int pi);
//
public static void Execute(String exeName, String cmdLine)
{
    CreateProcess(exeName, cmdLine, 0, 0, 0, 0, 0, 0, 0, 0);
}
public static void Execute(String exeName)
{
    //CreateProcess(exeName, "", 0, 0, 0, 0, 0, 0, 0, 0);
    Execute(exeName, "");
}
----------------------------------------------------------------------------
WinForm 向Web发Socket
            Uri url = new Uri("http://192.168.16.127:200/Receiver.aspx");
            byte[] data = Encoding.UTF8.GetBytes(tbSend.Text);
           
            WebClient wc = new WebClient();
            wc.Headers.Add("Content-Type", "text/xml; charset=\"UTF-8\"");

            byte[] _bytVals = wc.UploadData(url, "POST", data);
            string str = Encoding.UTF8.GetString(_bytVals);
----------------------------------------------------------------------------

 

 

 

 

 

 

 


 

posted on 2008-07-04 15:30  todd.chun  阅读(300)  评论(0)    收藏  举报