仓酷云

标题: MYSQL网站制作之怎样在SQL Server中保留和输入图片 [打印本页]

作者: 山那边是海    时间: 2015-1-16 22:32
标题: MYSQL网站制作之怎样在SQL Server中保留和输入图片
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。server建表  

为了实验这个例子你必要一个含无数据的table(你能够在如今的库中创立它,也能够创立一个新的数据库),上面是它的布局: 

<Pclass=code>
  1.   ColumnName  Datatype  Purpose  ID  Integer  identitycolumnPrimarykey  IMGTITLE  Varchar(50)  Storessomeuserfriendlytitletoidentitytheimage  IMGTYPE  Varchar(50)  Storesimagecontenttype.ThiswillbesameasrecognizedcontenttypesofASP.NET  IMGDATA  Image  Storesactualimageorbinarydata.
复制代码
保留images进SQLServer数据库 

为了保留图片到table你起首得从客户端上传它们到你的web服务器。你能够创立一个webform,用TextBox失掉图片的题目,用HTMLFileServerControl失掉图片文件。确信你设定了Form的encType属性为multipart/form-data。 

<Pclass=code>
  1.   Streamimgdatastream=File1.PostedFile.InputStream;  intimgdatalen=File1.PostedFile.ContentLength;  stringimgtype=File1.PostedFile.ContentType;  stringimgtitle=TextBox1.Text;  byte[]imgdata=newbyte[imgdatalen];  intn=imgdatastream.Read(imgdata,0,imgdatalen);  stringconnstr=  ((NameValueCollection)Context.GetConfig  ("appSettings"))["connstr"];  SqlConnectionconnection=newSqlConnection(connstr);  SqlCommandcommand=newSqlCommand  ("INSERTINTOImageStore(imgtitle,imgtype,imgdata)  VALUES(@imgtitle,@imgtype,@imgdata)",connection);  SqlParameterparamTitle=newSqlParameter  ("@imgtitle",SqlDbType.VarChar,50);  paramTitle.Value=imgtitle;  command.Parameters.Add(paramTitle);  SqlParameterparamData=newSqlParameter  ("@imgdata",SqlDbType.Image);  paramData.Value=imgdata;  command.Parameters.Add(paramData);  SqlParameterparamType=newSqlParameter  ("@imgtype",SqlDbType.VarChar,50);  paramType.Value=imgtype;  command.Parameters.Add(paramType);  connection.Open();  intnumRowsAffected=command.ExecuteNonQuery();  connection.Close();  
复制代码
从数据库中输入图片  

如今让我们从数据库中掏出我们方才保留的图片,在这儿,我们将间接将图片输入至扫瞄器。你也能够将它保留为一个文件或做任何你想做的。<Pclass=code>
  1.   privatevoidPage_Load(objectsender,System.EventArgse)  {  stringimgid=Request.QueryString["imgid"];  stringconnstr=((NameValueCollection)  Context.GetConfig("appSettings"))["connstr"];  stringsql="SELECTimgdata,imgtypeFROMImageStoreWHEREid="  +imgid;  SqlConnectionconnection=newSqlConnection(connstr);  SqlCommandcommand=newSqlCommand(sql,connection);  connection.Open();  SqlDataReaderdr=command.ExecuteReader();  if(dr.Read())  {  Response.ContentType=dr["imgtype"].ToString();  Response.BinaryWrite((byte[])dr["imgdata"]);  }  connection.Close();  }  
复制代码
在下面的代码中我们利用了一个已翻开的数据库,经由过程datareader选择images。接着用Response.BinaryWrite取代Response.Write来显现image文件。那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。
作者: 简单生活    时间: 2015-1-19 16:13
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
作者: 爱飞    时间: 2015-1-28 08:19
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
作者: 海妖    时间: 2015-2-13 11:37
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
作者: 若天明    时间: 2015-3-3 20:49
呵呵,这就是偶想说的
作者: 柔情似水    时间: 2015-3-11 13:39
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
作者: 第二个灵魂    时间: 2015-3-18 21:15
发几份SQL课件,以飨阅者
作者: 飘灵儿    时间: 2015-3-26 18:33
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2