ASP.Net常用模块整理

为了让大家更好的学习,我把常用的模块写成一个个方法,希望能对大家有用.每个人都有不同的算法跟代码习惯,而且个人水平有限,欢迎大家多多指正.

前提准备:
由于项目是采用SQL数据库,所以我们先在web.config中设置好数据库连接

<appSettings>
        <add key="Conn" value="Server=(local);Database=dezai;User ID=sa;"></add>    
  </appSettings> 

  之后在CS代码中要注意引用

  using System.Data.Sqlclient;
  using System.Data;
  using System.Configuration;

以下就是常用的模块


1.会员登陆模块


用户控件: 
TextBox:TxtUser 用户名  TxtPwd 密码
Label:LblError 错误提示

存储过程:user_login
 
CREATE   procedure  user_login
@user_name   varchar ( 50 ),
@user_password   varchar ( 50 )
as
select   *   from  userwhere  [ User_Name ]   =   @User_Name   and   [ User_Pwd ]   =   @User_Password
if   @@rowcount > 0
begin

update    [ users ]   set  user_LoginTimes = user_LoginTimes + 1   where   [ User_Name ]   =   @User_Name   and   [ User_Pwd ]   =   @User_Password

end
GO

C#.Net:

Private  void  memberlogin()    
{
SqlConnection conndb
=new SqlConnection(ConfigurationSettings.AppSettings["Conn"]);
   conndb.Open();            
SqlCommand cmdlogin 
= new SqlCommand("User_login",conndb);
cmdlogin.CommandType 
= CommandType.StoredProcedure;
cmdlogin.Parameters.Add(
"@user_name",TxtUser.Text.Trim());
cmdlogin.Parameters.Add(
"@user_password",TxtPwd.Text.Trim());
SqlDataReader reader
=cmdlogin.ExecuteReader();
if(reader.Read())
{
                Session[
"user"]=reader["user_id"].ToString();
                Session[
"com"]=reader["com_id"].ToString();
                
                
string url;
                url
="../user/index.aspx?userid="+ Session["userid"+"&comid="+ Session["comid"+"";
                Response.Redirect(url);
            }

            
else
            
{
                LblError.Text 
="Invalid Username or password!Please try again!";

            }



}

2.验证注册用户是否存在

用户控件:
TextBox: TxtMemberID
Label: LblChk

private   bool  idcheck()
        
{
            SqlConnection conndb
= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
            conndb.Open();
            
string memberid=TxtMemberId.Text.Trim();
            
string sql="select User from users where User_Name ='"+memberid+"'";
            SqlCommand strchk
=new SqlCommand(sql,conndb);
            SqlDataReader reader
=strchk.ExecuteReader();
            
if(reader.Read())
            
{

                LblChk.Text
="Sorry! this memberid was registed,Please choose another!";

                

                Response.Write(
"<script>al&#101;rt("Invalid member id");</script>");

                

                Response.End();

                

                
return false;

            }

            
else
            
{
                
return true;
            }
3.新用户注册

用户控件: 
TextBox:TxtMemberId  TxtPwd  TxtEmail 
ListBox:LstIndustry

存储过程:Users_Insert

 

/*
作者:dezai
用途:新进会员的增加注册,同时注册与其相关的企业名录
日期:2006-3-1
*/



CREATE PROCEDURE Users_Insert
@User_Id 
int  output,
@User_Type bit,
@User_Name 
char ( 100 ),
@User_Pwd  
char ( 100 ),
@User_Email 
char ( 100 )
AS
   begin tran

    INSERT INTO [Users]
    (
    [user_type],
    [user_name],
    [user_pwd],
    [user_Email]
)

values
(
@User_Type,
@User_Name,
@User_Pwd,
@User_Email
)

if  @@error <> 0   goto  error
set  @user_Id = @@identity

Commit tran
return
ERROR:
    
set  @User_Id  =   0
    rollback tran
GO

C#.Net:

private   void  reguser()
{
SqlConnection conndb
=new SqlConnection(ConfigurationSettings.AppSettings["Conn"]);
                
                SqlCommand cmdinsert 
= new SqlCommand("Users_Insert",conndb);

                cmdinsert.CommandType
=CommandType.StoredProcedure;

                
int intAuthorCount;
                cmdinsert.Parameters.Add(
"@User_Name",TxtMemberId.Text.ToString());
                cmdinsert.Parameters.Add(
"@User_Pwd",TxtPwd.Text.ToString());
                cmdinsert.Parameters.Add(
"@User_Email",TxtEmail.Text.ToString());
                cmdinsert.Parameters.Add(
"@User_Industry",LstIndustry.SelectedValue);
            SqlParameter  parmReturnValue 
= new SqlParameter("@User_id", SqlDbType.Int);
            parmReturnValue.Direction 
= ParameterDirection.Output; 
            cmdinsert.Parameters.Add(parmReturnValue);
                conndb.Open();
                cmdinsert.ExecuteNonQuery();
                 intAuthorCount 
= (int)cmdinsert.Parameters[ "@user_id"].Value; 
                             conndb.Close();

}

4.图片上传

private   void  uppic()
        
{

             
string mPath;
   
string imagePath;
   
string imageType;
   
string imageName;
    DateTime dtmDate;

    dtmDate 
= DateTime.Now;

            
if(""!=this.fileup.PostedFile.FileName)
            
{
                imagePath 
= this.fileup.PostedFile.FileName;

                imageType 
= imagePath.Substring(imagePath.LastIndexOf(".")+1);

                imageName
=imagePath.Substring(imagePath.LastIndexOf("/")+1);

                
if("jpg" != imageType && "gif" !=imageType && "png" !=imageType && "PNG" !=imageType && "GIF" !=imageType && "JPG" !=imageType)
                
{
                    Response.Write(
"<script language='javascript'>al&#101;rt('sorry!Please choose *.jpg or *.gif or *.png');</script>");
 
                    
return;
                }

                
else

                
{
                    
try
                    
{

                        mPath
=Server.MapPath("upfile");

                        
this.fileup.PostedFile.SaveAs(mPath+"/"+"dezaistudio"+dtmDate.ToString("yyyyMMddhhmmss")+imageName);

                        
this.ImageSmall.ImageUrl  = "dezaistudio"+dtmDate.ToString("yyyyMMddhhmmss")+imageName;
                        

                        Response.Write(
"<script language='javascript'>al&#101;rt('upload succesful');</script>");

                        TxtPicPath.Text 
= this.ImageSmall.ImageUrl.ToString().Trim();

                        
                    }

                    
catch
                    
{
                        Response.Write(
"error");
                    }

                }

            }


         }


5.DataList分页(其实Repeart也可采用这个,只是改一下控件名而已)

用户控件 
DataList: DlstInfolist
Label:lblCurrentPage 
HyperLink:lnkNext LnkPrev


存储过程:supplyinfo_select

/*
查询大类下所有的supplyinfo
2006-4-10
*/


create   procedure  supplyinfo_select

@bigclassid   int

as  

select   *   from  supply

where  

Supply_CatID
= @bigclassid
GO

C#.Net:

private   void  dlstsupplyinfolist()
        
{

            SqlConnection conndb 
= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);

            conndb.Open();


            
string bigid=Request.QueryString["bigid"].Trim();


            SqlDataAdapter strbuyinfo 
= new SqlDataAdapter("supplyinfo_select",conndb); 

            strbuyinfo.SelectCommand.CommandType 
= CommandType.StoredProcedure;


            strbuyinfo.SelectCommand.Parameters.Add(
"@bigclassid",bigid);


            DataSet ds 
= new DataSet();

            strbuyinfo.Fill(ds);


        
{


            PagedDataSource objPds 
= new PagedDataSource();
            objPds.DataSource 
= ds.Tables[0].DefaultView;
            objPds.AllowPaging 
= true;
            objPds.PageSize 
= 5;
            
int CurPage;

            
if (Request.QueryString["Page"!= null)
                CurPage
=Convert.ToInt32(Request.QueryString["Page"]);
            
else
                CurPage
=1;

            objPds.CurrentPageIndex 
= CurPage-1
            lblCurrentPage.Text 
= "Page: " + CurPage.ToString();

            
if (!objPds.IsFirstPage)
                lnkPrev.NavigateUrl
=Request.CurrentExecutionFilePath + "?id="  + bigid +"&Page=" + Convert.ToString(CurPage-1);

            
if (!objPds.IsLastPage)
                lnkNext.NavigateUrl
=Request.CurrentExecutionFilePath + "?id="  + bigid +"&Page="+ Convert.ToString(CurPage+1);


            DlstInfolist.DataSource
=objPds;

            DlstInfolist.DataKeyField
="Supply";

            DlstInfolist.DataBind();
            
        }



        }


7.用户密码修改

用户控件:
Button:Btnsubmit
TextBox:TxtNewPwd

存储过程:userpwd_update

/*
作者:dezai
日期:2006-3-11
用途:用来修改会员的密码
*/


create   procedure  userpwd_update

@user_ID   int ,

@user_pwd    char ( 50 )

as
update   [ user ]

set

[ UserPwd ] = @user_pwd

where  

[ userid ] = @user_id
GO


C#.Net:

private   void  Btnsubmit_Click( object  sender, System.EventArgs e)
        
{
            
if(Page.IsValid)
            
{
                
string userid = Request.QueryString["userid"].Trim();

                SqlConnection conndb 
= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);

                conndb.Open();

                SqlCommand Strupdate 
= new SqlCommand("userpwd_update",conndb);


                Strupdate.CommandType 
= CommandType.StoredProcedure;


                Strupdate.Parameters.Add(
"@user_ID",userid);

                Strupdate.Parameters.Add(
"@user_pwd",TxtNewPwd.Text.Trim());

                Strupdate.ExecuteNonQuery();

                conndb.Close();

                Response.Write(
"<script language='javascript'>al&#101;rt('Update succesful!');</script>");
            }

            
else
            
{
                Response.Write(
"<script language='javascript'>al&#101;rt('Error!');</script>");}



        }


8.发送E-mail:

用户控件:
Butoon:Button1 
TextBox: TxtSubject
Label:LblUsername

注意:要记得引用Jmail组件

private   void  Button1_Click( object  sender, System.EventArgs e)
        
{
            
            jmail.Message     Jmail
=new   jmail.Message();

            DateTime   t
=DateTime.Now;       
            String   Subject
=TxtSubject.Text.Trim();;       
            String   body
="Hello"+LblUsername.Text.Trim();
            String   FromEmail
="eastjazz@163.com";       
            String   ToEmail
=LblUseremail.Text.Trim();
            
//Silent属性:如果设置为true,JMail不会抛出例外错误.   JMail.   Send(   ()   会根据操作结果返回true或false
            Jmail.Silent=true;
            
//Jmail创建的日志,前提loging属性设置为true
            Jmail.Logging=true;
            
//字符集,缺省为"US-ASCII"
            Jmail.Charset="GB2312";
            
//信件的contentype.   缺省是"text/plain")   :   字符串如果你以HTML格式发送邮件,   改为"text/html"即可。
            Jmail.ContentType="text/html";
            
//添加收件人
            Jmail.AddRecipient(ToEmail,"","");
            Jmail.From
=FromEmail;
            
//发件人邮件用户名
            Jmail.MailServerUserName="dezaiiloveu"   ;
            
//发件人邮件密码
            Jmail.MailServerPassWord="dezaistudio"   ;
            
//设置邮件标题
            Jmail.Subject=Subject;
            
//邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment(   "c:/test.jpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
            
            
//邮件内容
            Jmail.Body=body+t.ToString();
            
//Jmail发送的方法
            Jmail.Send("smtp.163.com",false);
            Jmail.Close()   ;

            InkBack.Visible
=true;

            InkBack.NavigateUrl
="index.aspx";

        }

    }


9.asp.net获取复选框所选的值

方法1:

public   static   string  GetCheckBoxListValue(CheckBoxList CBList)
    
{
        
string strTemp = "";
       
        
for (int i = 0; i < CBList.Items.Count; i++)
        
{
            
if (CBList.Items[i].Selected)
            
{
                
if (strTemp == "")
                
{
                    strTemp 
= CBList.Items[i].Value;
                }

                
else
                
{
                    strTemp 
+= "," + CBList.Items[i].Value;
                }

            }

        }


        
return strTemp;
    }


方法2:

CheckBoxListMessage.Text = "" ;
for  ( int  i = 0 ; i < checkboxlist1.Items.Count; i ++ )
{
if (checkboxlist1.Items[i].Selected)
{
   CheckBoxListMessage.Text 
+= checkboxlist1.Items[i].Text + "<br/>";
}

}


10.数据库的备份与恢复

<% @ Page  %>
< HTML >
    
< HEAD >
        
< title > 获取服务器端数据库列表示例 </ title >
        
<%  @Import Namespace = " System.Data "   %>
        
<%  @Import Namespace = " System.Data.SqlClient "   %>
        
< script language = " C# "  runat = " server " >

//  注意本节的数据库连接字符串
string  ConnStr  =  System.Configuration.ConfigurationSettings.AppSettings[ " conn " ];

void  Page_Load( object  sender, System.EventArgs e)
{
if(!IsPostBack)
{
// 创建连接及执行数据库操作
string db_query = "sp_helpdb";

SqlCommand myCommand 
= new SqlCommand(db_query, new SqlConnection(ConnStr));
myCommand.Connection.Open();
SqlDataReader dr 
= myCommand.ExecuteReader();

// 将数据库列表绑定到下拉列表控件(DropDownList)
dbDropDownList.DataSource = dr;
dbDropDownList.DataTextField 
= "name";
dbDropDownList.DataBind();

//关闭DataReader对象和数据库连接
dr.Close();
myCommand.Connection.Close();
}

}


void  dbDropDownList_SelectedIndexChanged( object  sender, System.EventArgs e)
{
pathTextBox.Text 
= @"d:BACKUP" + dbDropDownList.SelectedValue + ".bak";
}


void  backupButton_Click( object  sender, System.EventArgs e)
{
string path = pathTextBox.Text;
string dbname = dbDropDownList.SelectedValue;

string backupSql = "use master;";
backupSql 
+= "backup database @dbname to disk = @path;";

SqlCommand myCommand 
= new SqlCommand(backupSql, new SqlConnection(ConnStr));

myCommand.Parameters.Add(
"@dbname", SqlDbType.Char);
myCommand.Parameters[
"@dbname"].Value = dbname;
myCommand.Parameters.Add(
"@path", SqlDbType.Char);
myCommand.Parameters[
"@path"].Value = path;

try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
infoLabel.Text 
= "备份成功";
}

catch(Exception ex)
{
infoLabel.Text 
= "备份失败<br/>" + ex.ToString();
}

finally
{
myCommand.Connection.Close();
}

}


void  restoreButton_Click( object  sender, System.EventArgs e)
{
string path = pathTextBox.Text;
string dbname = dbDropDownList.SelectedValue;

string restoreSql = "use master;";
restoreSql 
+= "restore database @dbname from disk = @path;";

SqlCommand myCommand 
= new SqlCommand(restoreSql, new SqlConnection(ConnStr));

myCommand.Parameters.Add(
"@dbname", SqlDbType.Char);
myCommand.Parameters[
"@dbname"].Value = dbname;
myCommand.Parameters.Add(
"@path", SqlDbType.Char);
myCommand.Parameters[
"@path"].Value = path;

try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
infoLabel.Text 
= "恢复成功";
}

catch(Exception ex)
{
infoLabel.Text 
= "恢复失败<br/>" + ex.ToString();
}

finally
{
myCommand.Connection.Close();
}

}


        
</ script >
    
</ HEAD >
    
< body >
        
< form id = " Form1 "  method = " post "  runat = " server " >
            
< h3 >& nbsp; </ h3 >
            数据库列表:
            
< asp:dropdownlist id = " dbDropDownList "  runat = " server "  AutoPostBack = " True "  OnSelectedIndexChanged = " dbDropDownList_SelectedIndexChanged " ></ asp:dropdownlist >
            
< br >
            
< br >
            请输入备份目录及备份文件名:
            
< asp:textbox id = " pathTextBox "  runat = " server "  Width = " 224px " >
C:BACKUPNorthwind.bak
</ asp:textbox > (目录必须存在)
            
< br >
            
< br >
            
< asp:button id = " backupButton "  runat = " server "  Font - Size = " 9pt "  Text = " 备份数据库 "  OnClick = " backupButton_Click " ></ asp:button >
            
< asp:button id = " restoreButton "  runat = " server "  Font - Size = " 9pt "  Text = " 恢复数据库 "  OnClick = " restoreButton_Click " ></ asp:button >
            
< br >
            
< br >
            
< asp:Label id = " infoLabel "  runat = " server " ></ asp:Label >
        
</ form >
    
</ body >
</ HTML >


11.C#防注入函数

   public   string  SafeRequest( string  ParaName, int  ParaType) 
  

   
//如果是1为数字,0为字符串
   string Paravalue=""
   Paravalue 
= ParaName; 
   
if (ParaType==1
   

    
if(!(IsNumeric(Paravalue))) 
    

     Paravalue
="0";
    }
 
   }
 
   
else 
   

    Paravalue
=Paravalue.Replace("'",""); 
   }
 
   
return(Paravalue); 
  }
 

  
public   static   bool  IsNumeric( string  strData) 
  

   
float fData; 
   
bool bValid = true
   
if(strData.Length>12)
   
{
    bValid 
= false;
   }

   
else
   
{
    
try 
    

     fData 
= float.Parse(strData); 
    }
 
    
catch (FormatException) 
    

     bValid 
= false
    }
 
   }

   
return bValid; 
  }



  
private   void  Button1_Click( object  sender, System.EventArgs e)
  
{
   Label1.Text
=SafeRequest(TextBox1.Text,1);
  }

 

[ 以上转自“德仔工作室”]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET开发典型模块大全(修订版)》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术,全面地介绍了如何使用asp.net进行各领域的web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,内容涉及论坛、博客、播客、网络硬盘、电子邮件、在线考试、网站备忘录、在线短消息、网站访问量统计与分析、系统后台管理权限分配等网站关键模块;第2篇常见模块篇,覆盖网站开发的各个领域,内容涉及网站会员注册及登录、会员密码找回、留言本、上传与下载、图片资源管理、搜索引擎、网上问卷调查、rss在线订阅、聊天室、购物车、在线银行支付、手机短消息管理、在线音乐、投票系统、万能打印、数据自动备份与恢复等常见模块;第3篇热点技术应用篇,解决网站开发在某个领域遇到的技术难题,内容涉及linq数据访问技术、安全技术、服务技术、ajax、高级应用技术等。 《ASP.NET开发典型模块大全(修订版)》附有配套光盘。光盘提供了书中所有案例的全部源代码,并经过精心调试,在windows xp和windows 2000下全部通过,保证能够正常运行。此外,光盘中还提供有编程词典试用版软件。 《ASP.NET开发典型模块大全(修订版)》案例涉及领域广泛,实用性非常强。学习本书读者可以了解各个领域的特点,能够针对某一行业进行软件开发,也可以通过光盘中提供的模块源代码进行二次开发,以减少开发系统所需要的时间。本书适合各级软件开发人员学习使用,也可供大、中专院校师生学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值