选择显示字体大小

在sql server中存储图像时强化管理界面

在这篇文章中,我会告诉你如何强化管理界面,并提供给你一个更好使用图像的方法。

    

图像维护

把图像插入数据表中只是管理数据库的一个方面。另外,用户需要删除或编辑数据,甚至寻找图像的位置。所以,我们通过asp.net来建立一个管理界面,允许用户编辑图像数据,删除图像,添加新的图像,以及通过用户输入的字符串来查找图像。在这个界面里,我们会使用datagrid控件来显示每一条数据。 datagrid的每一行都将包括以下内容:

· id: 数据表中为每个图像指定的唯一整数。

· name: 插入图像时,需要为图像指定名称。这一项通过上传控件得到,所以它的内容是图像的文件名,以及插入时的完整路径。

· type: 图像所对应的图像类型。

· size: 图像的大小,单位是字节。

· description: 由用户输入的图像说明。

· image: 实际图像将以一个比较小的比例显示在datagrid中(比例由图像本身决定)。也可以把它看作缩略图(宽50像素,高40像素)。

· buttons: 每一条数据中都有编辑和删除的按钮。当用户点击编辑按钮时,更新和取消按钮将显示在编辑按钮的位置。更新按钮将所作修改写入数据库并退出编辑模式。取消按钮忽略一切修改,直接退出编辑模式

另外,datagrid顶端的添加新图像按钮可以让用户向数据库中添加新的图像。还有一个文本框和搜索按钮让用户可以在数据库中进行搜索。当用户点击搜索按钮时,将在数据库中搜索名称或说明中包含搜索字符串的数据条目。搜索结果将显示在datagrid中。还有一个清除按钮,用于清除搜索文本框,并将所有数据重新载入datagrid。

列表a列出了页面的vb.net代码。

列表a

========

const connstring as string = "data source=localhost;initial

catalog=northwind;user id=username;password=password;"

sub page_load(sender as object, e as eventargs)

if (not page.ispostback) thenbinddataset(string.empty)

end if

end sub

sub binddataset(searchstring as string)

dim conn as sqlconnection

dim comm as sqlcommand

dim sql as string

if (searchstring = string.empty) thensql = "select id, name,

contenttype, filesize, picture, description " + _

"from imagedata order by name"

elsesql = "select id, name, contenttype, filesize, picture, description

" + _

"from imagedata where name like '%" + searchstring + _

"%' or description like '%" + searchstring + "%' order by name"

end if

tryconn = new sqlconnection(connstring)comm = new sqlcommand(sql,

conn)conn.open()dgimages.datasource =

comm.executereader()dgimages.databind()

catch sqlexc as sqlexceptionresponse.write("data error occurred: "

amp; sqlexc.tostring())

end try

end sub

function imagelink(strargument) as string

return ("displayimagevb.aspx?id=" & strargument)

end function

sub dgimages_edit(sender as object, e as

datagridcommandeventargs)dgimages.edititemindex =

e.item.itemindexbinddataset(string.empty)

end sub

sub dgimages_cancel(sender as object, e as

datagridcommandeventargs)dgimages.edititemindex =

-1binddataset(string.empty)

end sub

sub dgimages_update(sender as object, e as datagridcommandeventargs)

dim strname as string = ctype(e.item.cells(1).controls(0),

textbox).text

dim strdesc as string = ctype(e.item.cells(4).controls(0),

textbox).text

dim strsql as string = "update [imagedata] set [name] = '" + strname +

_

"', [description] = '" + strdesc + "' where [id] = " +

e.item.cells(0).text

dim conn as new sqlconnection(connstring)conn.open()

dim comm as sqlcommand = new sqlcommand(strsql, conn)comm.commandtype =

commandtype.textcomm.executenonquery()conn.close()dgimages.edititemindex

= -1binddataset(string.empty)

end sub

sub dgimages_delete(sender as object, e as datagridcommandeventargs)

dim sql as string sql = "delete from [imagedata] where [id] = " +

e.item.cells(0).text

dim conn as new sqlconnection(connstring)conn.open()

dim comm as sqlcommand = new sqlcommand(sql, conn)comm.commandtype =

commandtype.textcomm.executenonquery()conn.close()dgimages.edititemindex

= -1binddataset(string.empty)

end sub

sub addimage(sender as object, e as

eventargs)response.redirect("addimage.aspx")

end sub

sub dosearch(sender as object, e as

eventargs)binddataset(txtsearch.text)

end sub

sub clearsearch(sender as object, e as eventargs)

if not (txtsearch.text = "")

thenbinddataset(string.empty)txtsearch.text = ""

end if

end sub

'

runat=server />



列表b 列出了等价的c#代码。

列表b

===============

const string connstring = "data source=pentium4;initial

catalog=northwind;user id=sa;password=;";

rivate void page_load(object sender, system.eventargs e) {

if (!page.ispostback) {binddataset(string.empty);

} }

ublic void binddataset(string searchstring)

{sqlconnectionconn;sqlcommandcomm;

tring sql;

if (searchstring == string.empty)sql = "select id, name, contenttype,

filesize, picture, description from imagedata order by name";

elsesql = "select id, name, contenttype, filesize, picture, description

from imagedata where name like '%" + searchstring + "%' or description

like '%" + searchstring + "%' order by name";

try {conn = new sqlconnection(connstring);comm = new sqlcommand(sql,

conn);conn.open();dgimages.datasource =

comm.executereader();dgimages.databind();

} catch (sqlexception ex) {response.write("data error: " +

ex.tostring());

} }

ublic string imagelink(object strargument) {

return ("displayimagevb.aspx?id=" + strargument.tostring());

}

ublic void dgimages_edit(object sender, datagridcommandeventargs e)

{dgimages.edititemindex = e.item.itemindex;binddataset(string.empty);

}

ublic void dgimages_cancel(object sender, datagridcommandeventargs e)

{dgimages.edititemindex = -1;binddataset(string.empty);

}

ublic void dgimages_update(object sender, datagridcommandeventargs e)

{

tring strname;

tring strdesc;

tring strsql;sqlconnectionconn;sqlcommandcomm;strname =

((textbox)(e.item.cells[1].controls[0])).text;strdesc =

((textbox)(e.item.cells[4].controls[0])).text;strsql = "update

[imagedata] set [name] = '" + strname + "', [description] = '" +

trdesc + "' where [id] = " + e.item.cells[0].text;conn = new

sqlconnection(connstring);conn.open();comm = new sqlcommand(strsql,

conn);comm.commandtype =

commandtype.text;comm.executenonquery();conn.close();dgimages.edititemindex

= -1;binddataset(string.empty);

}

ublic void dgimages_delete(object sender, datagridcommandeventargs e)

{

tring sql;sql = "delete from [imagedata] where [id] = " +

e.item.cells[0].text;sqlconnectionconn;sqlcommandcomm;conn = new

sqlconnection(connstring);conn.open();comm = new sqlcommand(sql,

conn);comm.commandtype =

commandtype.text;comm.executenonquery();conn.close();dgimages.edititemindex

= -1;binddataset(string.empty);

}

ublic void addimage(object sender, eventargs e)

{response.redirect("sqlimagesexample1vb.aspx");

}

ublic void dosearch(object sender, eventargs e)

{binddataset(txtsearch.text);

}

ublic void clearsearch(object sender, eventargs e) {

if (txtsearch.text != "") {binddataset(string.empty);txtsearch.text =

"";

} }

'

runat="server" />


以下是对代码的一些解释:

· datagrid的oneditcommand属性将edit命令 (editcommandcolumn)指定到特定的子程序。对取消编辑的oncancelcommand,保存修改的onupdatecommand,以及删除数据项的ondeletecommand也是一样。

· asp:boundcolumn元素在对应的数据集中将datagrid的列与指定的列连接。datafield属性指定对应的列。

· asp.net的按钮控件使搜索和添加新项目更加轻松。它们的onclick属性可以让你指定一个子程序,当按钮被按下时执行。

· dosearch子程序在数据表中所有数据项的description和name中对搜索字符串进行搜索。搜索结果的各行将在datagrid中显示。

· clearsearch方法将所有数据重新载入datagrid,并清除搜索文本框。

· binddataset方法负责将数据载入datagrid并接受搜索字符串。如果搜索字符串为空,则执行的t-sql语句中将设定为显示数据表中所有数据。否则,将使用搜索字符串来创建t-sql语句来取出所有符合搜索字符串的记录,显示在datagrid中。




 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons