.NET Tips: 正确获取当前URL
[ 2005-11-17 09:13:49 | 作者: admin ]
.NET Tips: 正确获取当前URL
获取当前URL我一直使用HttpContext.Current.Request.Url.ToString(),今天Tinyfool指出我的一个Bug,调试发现,ToString()函数并不可靠。
如果当前URL为
http://localhost/search.aspx?user=tinyfool&tag=%BC%BC%CA%F5
通过HttpContext.Current.Request.Url.ToString()获取到的却是
http://localhost/search.aspx?user=tinyfool&tag=¼¼Êõ
这显然不对,怎么办?用HttpContext.Current.Request.Url.PathAndQuery好了,这个得到的正确的。:)
获取当前URL我一直使用HttpContext.Current.Request.Url.ToString(),今天Tinyfool指出我的一个Bug,调试发现,ToString()函数并不可靠。
如果当前URL为
http://localhost/search.aspx?user=tinyfool&tag=%BC%BC%CA%F5
通过HttpContext.Current.Request.Url.ToString()获取到的却是
http://localhost/search.aspx?user=tinyfool&tag=¼¼Êõ
这显然不对,怎么办?用HttpContext.Current.Request.Url.PathAndQuery好了,这个得到的正确的。:)
摘录的.net开发笔记资料
[ 2005-11-12 15:32:14 | 作者: admin ]
开发笔记资料
1. 数据验证
public static bool ValidateUserid(string inString)
{
Regex r = new Regex("^[A-Za-z0-9]{8}$");
return r.IsMatch(inString)
}
^[A-Za-z0-9]{8}$ 8个字的种子
2. 后期绑定
<%# DataBinder.Eval(Container.DataItem,"price","{0:c}") %> 货币格式
3. 注册客户端脚本
string sClose = null;
sClose = @"<script language = javascript>
window.close();
</script>";
...
阅读全文…
1. 数据验证
public static bool ValidateUserid(string inString)
{
Regex r = new Regex("^[A-Za-z0-9]{8}$");
return r.IsMatch(inString)
}
^[A-Za-z0-9]{8}$ 8个字的种子
2. 后期绑定
<%# DataBinder.Eval(Container.DataItem,"price","{0:c}") %> 货币格式
3. 注册客户端脚本
string sClose = null;
sClose = @"<script language = javascript>
window.close();
</script>";
...
阅读全文…
常用的数据库操作函数
[ 2005-11-12 15:31:39 | 作者: admin ]
public DataSet ReadDB(string SqlCmd)
{
SqlConnection conn=new SqlConnection(SqlConn);
SqlDataAdapter da=new SqlDataAdapter(SqlCmd,conn);
DataSet ds=new DataSet();
da.Fill(ds);
da.Dispose();
return ds;
}
public DataSet ReadDB_OLEDB(string OleCmd)
{
OleDbConnection conn=new OleDbConnection(OleConn);
OleDbDataAdapter da=new OleDbDataAdapter(OleCmd,conn);
DataSet ds=new DataSet();
...
阅读全文…
{
SqlConnection conn=new SqlConnection(SqlConn);
SqlDataAdapter da=new SqlDataAdapter(SqlCmd,conn);
DataSet ds=new DataSet();
da.Fill(ds);
da.Dispose();
return ds;
}
public DataSet ReadDB_OLEDB(string OleCmd)
{
OleDbConnection conn=new OleDbConnection(OleConn);
OleDbDataAdapter da=new OleDbDataAdapter(OleCmd,conn);
DataSet ds=new DataSet();
...
阅读全文…
当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。
在以下示例中,将创建三个新的 SqlConnection 对象,但只需要使用两个连接池来管理这些对象。请注意,第一个和第二个连接字符串的差异在于为 Initial Catalog 分配的值。
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
conn.Open();
// Pool A is created.
SqlConnection conn = new SqlConnection();
...
阅读全文…
在以下示例中,将创建三个新的 SqlConnection 对象,但只需要使用两个连接池来管理这些对象。请注意,第一个和第二个连接字符串的差异在于为 Initial Catalog 分配的值。
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
conn.Open();
// Pool A is created.
SqlConnection conn = new SqlConnection();
...
阅读全文…
关于关闭数据库Close
[ 2005-11-12 15:27:39 | 作者: admin ]
数据库应该先关闭close,然后再释放资源dispose
finally
{
MyConn.Close();
}
这句并不合理,最好是判断一下,MyConn是否打开的,否则将可以抛出另外的异常。
关于SqlDataAdapter:
如果你使用SqlDataAdapter类openConnection()
和closeConnection()都是多余的。
你在页面上使用了适配器,适配器会自己打开连接,而且是在“不知道什么时候”打开的,反正它是保持好它要用的时候是开的,至于什么时候开就不知道了。所以在使用适配器的地方,打开连接前要先判断状态(养成任何地方打开前先判断是好习惯)
finally
{
MyConn.Close();
}
这句并不合理,最好是判断一下,MyConn是否打开的,否则将可以抛出另外的异常。
关于SqlDataAdapter:
如果你使用SqlDataAdapter类openConnection()
和closeConnection()都是多余的。
你在页面上使用了适配器,适配器会自己打开连接,而且是在“不知道什么时候”打开的,反正它是保持好它要用的时候是开的,至于什么时候开就不知道了。所以在使用适配器的地方,打开连接前要先判断状态(养成任何地方打开前先判断是好习惯)
string[] result = new string[20];
这样不好,可以考虑使用ArrayList
这样不好,可以考虑使用ArrayList
禁止服务器缓存的问题
[ 2005-11-12 15:15:09 | 作者: admin ]
in Page_Load event:
Response.Cache.SetNoServerCaching();
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Cache.SetExpires(new DateTime(1900,01,01,00,00,00,00));
Response.Cache.SetNoServerCaching();
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Cache.SetExpires(new DateTime(1900,01,01,00,00,00,00));
.NET我曾经尝试用过了大量的工具,现在说说我推荐的工具吧:)
源码查看工具:
Reflector
不多说了。
加密与混淆工具:
Xeno2005
引用别人的介绍:一款为.NET平台下的开发人员设计的功能强大、灵活和易于使用的代码保护及优化的工具,该软件的.NET分析和重编译引擎保护用户的代码反编译,提高增强程序性能以及提供对.NET框架的支持,包括MC++和Satellite Assemblies
数据库建模工具:
Visio
针对于Sql Server 2000,可以采用Visual Studio2003光碟包中自带的Visio,支持正向生 成与反向工程。但Visio在针对其它数据库的支持上有许多问题存在,具体的问题列表,可以查看Visio安装目录上的文档说明。Visio无论用于数据库模型建模...
阅读全文…
源码查看工具:
Reflector
不多说了。
加密与混淆工具:
Xeno2005
引用别人的介绍:一款为.NET平台下的开发人员设计的功能强大、灵活和易于使用的代码保护及优化的工具,该软件的.NET分析和重编译引擎保护用户的代码反编译,提高增强程序性能以及提供对.NET框架的支持,包括MC++和Satellite Assemblies
数据库建模工具:
Visio
针对于Sql Server 2000,可以采用Visual Studio2003光碟包中自带的Visio,支持正向生 成与反向工程。但Visio在针对其它数据库的支持上有许多问题存在,具体的问题列表,可以查看Visio安装目录上的文档说明。Visio无论用于数据库模型建模...
阅读全文…