在做一个小网站的一些心得与遇到的问题总结,为以后方便查阅。

1清除缓存管用的方法,base类。(好像这样比较管用)
 Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

2int.TryParse的好处
private string _zip;
     
public string Zip
     
{
         
get
         
{
             
return _zip;
         }

         
set
         
{
             
int res;
             
if (int.TryParse(value, out res))
             
{
                 
if (res > 99999)
                 
{
                     
throw new ArgumentException("Zip Code Value invalid");
                 }

                 
else
                 
{
                     _zip 
= res.ToString().PadLeft(5, ‘0′);
                 }

             }

             
else
             
{
                 
throw new ArgumentException("Zip code must be numeric");
             }

         }

 
     }
!int.TryParse(this.DropDownList_TypeName.SelectedItem.Value, out TypeId){}
2005中每种类型都提供了TryParse方法,该方法的格式一般为bool TryParse(value,out resultValue)。
value 就是将要转换的数据。resultValue是转换后的值。该方法若成功,resultValue中将是转换后的值,同时方法返回true;若失败,resultValue将是将要转换的类型的默认值,同时方法返回false。

3枚举,添加删除新闻的两个标志
private enum Status { Add, Edit };
private Status status;

4存img的时候最好只存img的名字再用再在外面拼地址得到绝对路径。
 这样以后路径有改变不必更新数据库。
  GetAbsolutePath("admin/Photos/" + txt_ImgUrl.Value);得到值(他人方法赞~)
  /// <summary>
        
/// 将相对路径转换为绝对路径
        
/// 注:最终得到任何场合都可以正常链接的路径(不论将应用程序设置成虚拟目录还是网站的根目录)
        
/// 例如:设置为虚拟目录的时候,"admin/upload/test.jpg" => "/JCDWeb/admin/upload/test.jpg"
        
///                设置为网站根的时候,"admin/upload/test.jpg" => "/admin/upload/test.jpg"
        
/// </summary>
        
/// <param name="path">从根开始的相对路径</param>
        
/// <returns>绝对路径</returns>

        public string GetAbsolutePath(string path)
        
{
            
// 如果是一个绝对路径直接返回
            if (path.ToLower().StartsWith("http://"))
            
{
                
return path;
            }


            
// 去掉前导的 "/"
            if (path.StartsWith("/"))
            
{
                path 
= path.Substring(1);
            }


            
// 整个应用程序的路径
            string appPath = "http://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath;
            
// 得到绝对路径
            if (appPath.EndsWith("/"))
                
return appPath + path;
            
else
                
return appPath + "/" + path;
        }


5dropdowlist编辑时绑定(easy
foreach (ListItem li in DropDownList_TypeName.Items)
                        
{
                            
if (li.Value == dt.Rows[0]["TypeID"].ToString().Trim())
                            
{
                                li.Selected 
= true;
                                
break;
                            }

                        }


6fckeditor
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>

7上传图片显示预览(针对ie7上传不能显示图片问题,增加滤镜)
<div id="div_1" class="preview">
 
<asp:Image ID="img_Photo" runat="server" ImageUrl="../images/noimage.gif"
  Width
="120px" Height="90px" /></div>
    
    
function PreviewInInternetExplorer7(file)
{
    
if (document.all) 
        
{
            $(
'div_1').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = file;
            $(
'img_Photo').style.display = "none";
        }
 else 
            
{
            $(
'img_Photo').src = file;
        }

}

.preview 
{
    width:120px;
    height:90px;
    overflow:hidden;
    text
-align:center;
    border:1px solid #DBDBDB;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod
='scale');
}

8得到安全的字符串
 public string GetSafeQueryStr(string _name)
        
{
            string str 
= "";
            
if (_name != "" && _name != null && Request[_name] != "" && Request[_name] != null)
                str 
= Request[_name].ToString().Trim().Replace("'""''");
            
return str;
        }

9repeater增删改 得到typeid(easy)
 <asp:LinkButton ID="lbt_delete" CommandArgument=' <%#DataBinder.Eval(Container.DataItem,"ID")   %> '
runat
="server" CommandName="delete" OnClientClick="return confirm('确定删除吗?')">删除</asp:LinkButton>
一:Label lb 
= e.Item.FindControl("TypeID"as Label;
 
int typeId = int.Parse (lb.Text.Trim());
switch (e.CommandName)
二:
int Id = Convert.ToInt32(e.CommandArgument);
 
switch (e.CommandName)

10设置可读写的数据库实例
 private static Database reader;
  
private static Database writer;

  
private static object lockObj = new object();

        
/// <summary>
        
/// 获得只读数据库实例
        
/// </summary>

        public static Database Reader
        
{
            
get
            
{
                
if (reader == null)
                
{
                    
lock (lockObj)
                    
{
                        
if (reader == null)
                        
{
                            reader 
= DatabaseFactory.CreateDatabase("Reader");
                        }

                    }

                }

                
return reader;
            }

        }


        
/// <summary>
        
/// 获得可写数据库实例
        
/// </summary>

        public static Database Writer
        
{
            
get
            
{
                
if (writer == null)
                
{
                    
lock (lockObj)
                    
{
                        
if (writer == null)
                        
{
                            writer 
= DatabaseFactory.CreateDatabase("Writer");
                        }

                    }

                }

                
return writer;
            }

        }

lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入一个锁定代码,则它将在释放该对象前一直等待。

11分页存储过程关键代码。

IF @curpage = 0

    
SET @cmd = 'SELECT TOP '+cast(@page_record AS NVARCHAR)+' '+@fieldlist+'
FROM 
'+@tablename+' WHERE '+@where+' '+@orderby

  
ELSE

    
SET @cmd = 'SELECT TOP '+cast(@page_record AS NVARCHAR)+' '+@fieldlist+'
FROM 
'+@tablename+' WHERE '+@where+' AND '+@tablefield+' 

    
'+@op+' (SELECT '+@max_min+'('+@tablefield+')  FROM (SELECT TOP
'+cast(@uprecord AS NVARCHAR)+' '+@tablefield+' FROM '+@tablename+' WHERE 

    
'+@where+' '+@orderby+') AS TmpTbl ) AND '+@where+' '+@orderby
posted @ 2008-03-17 11:29  早班火车  阅读(856)  评论(0编辑  收藏  举报