版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、cm.Parameters fileAuthor .Value = this .Author.Value.Trim(); cm.Parameters.Add( fileSource , SqlDbType.NVarChar, 50); cm.Parameters fileSource .Value = this .tSource.Text.Trim(); cm.Parameters.Add( filePath , SqlDbType.NVarChar, 200); cm.Parameters filePath .Value =this .File1.PostedFile.FileName.Tr
2、im(); cm.Parameters.Add( fileSize , SqlDbType.NVarChar, 50);cm.Parameters fileSize .Value= this .File1.PostedFile.ContentLength cm.Parameters.Add( fileType , SqlDbType.NVarChar, 50);cm.Parameters fileType .Value = this .File1.PostedFile.ContentType; cm.ExecuteNonQuery();catch ( Exception ex)str= 文件上
3、传失败,请重试 ; Response.Write(ex.Message); 文件的下载(主代码如下)SqlConnection cn= new SqlConnection (conn); cn.Open();SqlComman dcm=new SqlComman(dsel_file , cn); cm.CommandTypeC=ommandTyp.SetoredProcedure; cm.Parameters.Add( fileTitle , SqlDbType.NVarChar, 50); cm.Parameters fileTitle .Value = b;SqlDataReader dr
4、=cm.ExecuteReader();if (dr.Read()string path =dr.GetString(3); /path: 文件物理路径System.IO. FileInfo file = new System.IO. FileInfo (path); Response.Clear();Response.Charset = GB2312;Response.ContentEncoding = System.Text. Encoding .UTF8;/ 添加头信息,为 文件下载 /另存为对话框指定默认文件名Response.AddHeader(Content-Disposition
5、 , attachment; filename= + Server.UrlEncode(name);/ 添加头信息,指定文件大小,让浏览器能够显示下载进度 Response.AddHeader(Content-Length , file.Length.ToString(); Response.ContentType = application/octet-stream ;Response.WriteFile(file.FullName); / 把文件流发送到客户端 Response.End(); / 停止页面的执行 dr.Close();cn.Close(); elseResponse.Wri
6、te( 暂无该资源! ); DataGrid 的分页实现(主代码如下)首先,要添加 4 个 Label 并分别设置 CommandArgument 属性为 first , next , prev , last ;然后,添加事件 onclick=PagerButtonClick ;具体事件代码为:public void PagerButtonClick( Object sender, EventArgs e) / 分页显示string arg = ( LinkButton )sender).CommandArgument; / 获得 LinkButton 的参 数值switch (arg)cas
7、e ( next ):if ( this .DataGrid1.CurrentPageIndex = DataGrid1.PageCount-1) Response.Write( 已是最后一页 );else if ( this .DataGrid1.CurrentPageIndex 0) DataGrid1.CurrentPageIndex -; break ;case ( last ):DataGrid1.CurrentPageIndex = (DataGrid1.PageCount - 1); break ;case( first ):DataGrid1.CurrentPageIndex
8、=0;break ;try SqlConnection conn = new SqlConnection (con); / 连接字符串 conn.Open();SqlDataAdapter myCommand =n ew SqlDataAdapter (); / 创建 SqlDataAdapter myCommand.SelectCommannde=w SqlComman(dsel_all_user ,conn); myCommand.SelectCommand.CommandTyCpeo=mmandTyp.SetoredProcedure ; myCommand.Fill(ds, allUs
9、er ); / 建立并填充数据集this .DataGrid1.DataSource=ds;/ 绑定 DataListthis .DataGrid1.DataBind();conn.Close();catch ( SqlException e)Response.Write( Exception in Main: + e.Message); / 出错处理 DataGrid 按钮列的使用(以删除为例)首先,要设置 DataGrid 的 DataKeyField 属性为 id;然后,设置事件 DataGrid1_DeleteCommand ,代码如下: private void DataGrid1_
10、DeleteCommand( object source, System.Web.UI.WebControls. DataGridCommandEventArgs e) try SqlConnection conn= new SqlConnection (con);/ 建立连接conn.Open();SqlComman delUser= new SqlComman(ddel_user ,conn);/ 建立命令delUser.CommandType=CommandTyp.SetoredProcedure;SqlParameter id=delUser.Parameters.Add( id ,
11、SqlDbType.BigInt);id.Value= this .DataGrid1.DataKeyse.Item.ItemIndex ; / 获得参数的值 int r=delUser.ExecuteNonQuery(); / 删除 if (r0)this .Label1.Text= 删除成功! ; conn.Close();this .DataGrid1.EditItemIndex = -1;if (this .DataGrid1.CurrentPageIndex0) this .DataGrid1.CurrentPageIndex= this .DataGrid1.CurrentPage
12、Index-1; getAllUser();elsethis .Label1.Text= 删除错误! ; conn.Close();this .DataGrid1.EditItemIndex = -1;getAllUser();catch ( SqlException er)Response.Write( SqlException in Main: + er.Message);事件上面所调用的方法 getAllUser() 代码如下: private void getAllUser() try SqlConnection conn = new SqlConnection (con); / 连接
13、字符串 conn.Open();SqlDataAdapter myCommand =n ew SqlDataAdapter ();/ 创建 SqlDataAdaptermyCommand.SelectCommannde=w SqlComman(dsel_all_user ,conn); myCommand.SelectCommand.CommandTyCpoe=mmandTyp.SetoredProcedure ; myCommand.Fill(ds, allUser ); / 建立并填充数据集this .DataGrid1.DataSource=ds;/ 绑定 DataListthis .D
14、ataGrid1.DataBind(); conn.Close();catch ( SqlException e)Response.Write( Exception in Main: + e.Message); / 出错处理 对管理员信息的修改,代码如下:首先,验证数据库中是否已存在更新信息;private bool validateUser() / 验证是否已有此管理员 try string con= ConfigurationSettings .AppSettings dsn ; / 取得 DSN字符 SqlConnection conn= new SqlConnection (con);
15、 / 连接字符串 conn.Open();SqlComman dval= new SqlComman(dsel_adminByName,conn); / 通过存储过程查看 用户val.CommandType=CommandTyp.SetoredProcedure; SqlParameter user=val.Parameters.Add( adminName,SqlDbType.Char,20); / 参数设定 user.Value= this .tAdminName.Text.Trim();SqlDataReader rd; rd=val.ExecuteReader();if (rd.Rea
16、d()= true )this .Label1.Text= 已有此管理员 ; return false ;else return true ;catch ( SqlException e)/ 出错处理Response.Write( SqlException in Main: + e.Message);return false ;如果数据库中无要更新信息,则可修改;private void updatepwd( string d) / 修改管理员密码 string con= ConfigurationSettings .AppSettings dsn ; / 取得DSN字符 SqlConnect
17、ion conn= new SqlConnection (con); / 连接字符串 conn.Open();SqlComman dval= new SqlComman(dupdate_adminPwd ,conn); / 修改管理员 val.CommandType=CommandTyp.SetoredProcedure;SqlParameter pwd=val.Parameters.Add( adminPwd,SqlDbType.Char,200 ); pwd.Value=d; / 接受传值SqlParameter id=val.Parameters.Add( id , SqlDbType.
18、BigInt ); / 参数设定 id.Value=( int )Session id ; int i=val.ExecuteNonQuery();if (i0)his .Label1.Text= 修改成功 ! ;4. 实训总结4.1 从整体来看,主要就是实现数据的增删查改,全部操作通过存储过程实现的。4.2 页面布局。这次实训,我花了大量的时间在页面布局上,这是最头痛的事,不过通过自己的努力, 最终的结果还是挺满意的。至少我知道如何使用css,表格布局,动态脚本添加等。4.3 传值问题。这也是一个比较困难的问题。总体来说,有 2 大传值方法:第一, URL 传值;第二,内 置对象( Sess
19、ion,Application 等)可以保存值并且在整个项目中都可以使用,所以可以把 拿来当传值用。第一种方法比较简单,但不够安全;第二种方法比较安全,但要注意使 用,不然会带来很大隐患。4.4 具体问题4.4.1 Page.IsPostBack只读的布尔值, 用于判断网页在何种情况下加载。 为 TRUE 时表示网 页是因为客户端返回数据而加载(回送) ,返回 FALSE 时表示网页是第一次加载。此属性很重 要,常与 Page对象的 Load 事件搭配使用。但一定要注意有时会在同一页面有很多的连接,而 这些连接恰恰是连接到本页,从而造成我们以为不是第一次加载的假像,其实任一页面,只要 重定向一
20、次就是第一次加载,这与刷新页面不一样。当时,我想在页面第一次加载时,获取 URL 的值,其实想法是对的,但就是因为重定向到同一页面的假象,我写的却不是第一次加载 时获取 URL 的值。4.4.2 File1.PostedFile.FileName :在编写上传文件代码时老是出现 “上传路径无效的提示 “, 调试了好长时间发现 File1.PostedFile.FileName 表示的是获取客户端上文件的完全限定名, 当我 使用string mySavePath=Server.MapPath( . )+ files +File1.PostedFile.FileName 来保存 地址时很明显是错误
21、的路径,怎么会有 C:C:files 这样的路径呢。解决方法首先是使用下面 Path.GetFileName( this .File1.PostedFile.FileName.Trim() 这个来获取文件名, 当 然要导入命名空间 using System.IO; 不然就引用不了 GetFileName 方法,一开始就是因为 这个,误以为 File1.PostedFile.FileName 就是获取文件名的。4.5 未解决问题4.5.1 用户控件。未能实现将用户控件的事件对外开放,但用户控件中的属性已对外开放,可以在其它网页中获取用户控件中文本框的值。4.5.2 计数器。在主页中所显示的计数器仅能实现来访者计数,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高考视角下的《青玉案·元夕》教案编写
- 物联网行业营销趋势白皮书2020:户外广告的未来之路
- 影视动画秘籍:2024年AE基础教程探秘
- 基于2024教育技术的灰雀课件
- 2024年教育信息化:办公自动化在教案编写中的应用
- 2024年巴西文化艺术市场发展前景
- 2024年人力资源管理教案设计新理念
- 天然气管道保护方案
- 物资报废申请报告
- 凝析油生产水系统
- 暖通工程师面试试题(含答案)
- 行政服务中心窗口工作人员手册
- JGJ_T231-2021建筑施工承插型盘扣式钢管脚手架安全技术标准(高清-最新版)
- 试桩施工方案 (完整版)
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- 中工商计算公式汇总.doc
- 深圳市建筑装饰工程消耗量标准(第三版)2003
- 《初中英语课堂教学学困生转化个案研究》开题报告
- 恒温箱PLC控制系统毕业设计
- 176033山西《装饰工程预算定额》定额说明及计算规则
评论
0/150
提交评论