获取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[] { " ", " " };
leachStrings = new string[] { "&", "&", "<", "<", ">", ">", "\r\n", "<br/>", "\n", "<br/>", " ", " ", "\"", """, " ", "'" };
}
符号 转义符号
" " " "
"&" "&"
"<" "<"
">" ">"
"\r\n" "<br/>"
"\n" "<br/>"
"\"" """
-----------------------------------------------------------------
动态加事件
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);
----------------------------------------------------------------------------

浙公网安备 33010602011771号