我是一个初学者,请教各位,如果有几个图片,如何保存到SQL server 2005当中呀?
没什么思路。
我只知道好像用image这个数据类型。
最好能用insert into 语句来作,把图片存储到表当中。

解决方案 »

  1.   

    ntext、text 和 image
    用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。 注释
    下面的函数和语句可以与 ntext、text 或 image 数据一起使用。函数 语句 
    DATALENGTH  READTEXT 
    PATINDEX SET TEXTSIZE 
    SUBSTRING UPDATETEXT 
    TEXTPTR WRITETEXT 
    TEXTVALID   请参见ALTER TABLECAST 和 CONVERTCREATE TABLE数据类型转换数据类型DECLARE @local_variableDELETEINSERTLIKESET @local_variableUPDATE使用 Unicode 数据
      

  2.   

    用控件?
    难道不能直接插入吗?
    像insert into abc values(1,2,3)  这样吗
      

  3.   

    首先你在表中定义一个字段,类型为image
    然后在应用层把要存如的图片转换为二进制流的形式,因为image实质上就是二进制流,
    然后再调用insert 语句,把这个图片对应的二进制流存入到表中
    很简单的
      

  4.   

    代码有是C#的
    给你找了一段,你看看吧:
                  RemoteRule remoteRule = (RemoteRule)GetRemoteingObjectByType(typeof(RemoteRule), "remoterule");
                DataSet ds = new DataSet();
                string PageState = ViewState["PageState"].ToString();
                //当页面状态为“new”时,表示要添加记录
                if (PageState == "new")
                {
                    string filename = txt_filename.Text;
                    string filecomment = txt_filecomment.Text;
                    string SlaveFileName = FileUpload1.PostedFile.FileName;                //读取所上传的文件的二进制流  这里开始是度二进制流
                      HttpPostedFile file1 = FileUpload1.PostedFile;
                    int filelength = Convert.ToInt32(file1.InputStream.Length);
                    byte[] FileContent_img = new byte[filelength];
                    file1.InputStream.Read(FileContent_img, 0, filelength); 已经读出来了
                    DateTime UploadTime = DateTime.Now.Date;
                    ds = remoteRule.GetRulebyName(filename);
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        Response.Write("<script>alert('您已经存在该文件名所对应的记录,请先删除后再添加')</script>");
                    }
                    else
                    {
                        DataRow dr = ds.Tables[0].NewRow();
                        dr["FileName_ch"] = filename;
                        dr["FileDesc_ch"] = filecomment;
                        dr["SlaveFileName_ch"] = SlaveFileName;
                        dr["FileContent_img"] = FileContent_img;
                        dr["UploadUser_ch"] = this.SystemModuleSettings.UserManage.CurrUserInf["RealName"].ToString();
                        dr["UploadTime_dt"] = UploadTime;
                        ds.Tables[0].Rows.Add(dr);
                        bool b = remoteRule.UpdateRule(ds); 
                        if (b)
                        {
                            Response.Write("<script>alert('添加成功,您可以点击添加按扭继续添加')</script>");
                        }
                        else
                        {
                            Response.Write("<script>alert('添加不成功')</script>");
                        }
                    }
    这个这段代码的作用就是上传问件,不逼全看,只需要知道怎么转换就可以了
      

  5.   

    05插入图片和文件简单,直接在查询分析器里insert就行了..
    create table t(photo image)--建表
    go
    insert t
    select 
    *
    from 
    openrowset(bulk N'C:\1.jpg',single_blob) a --N'C:\1.jpg'为路径和图片名-------------------就这样就行了。。05的openrowset功能增强很多,在不少地方都有用到...
      

  6.   

    roy_88 兄台,
    有关向SQL2005当中插入图片的问题,很感谢你的支持,
    insert  abc
    select 
        *
    from 
        openrowset(bulk N'd:\222\bird1.jpg',single_blob) a但如果是一个表,它有几个字段,其中一个字段是想插入图片的,那怎么办呀?
    我是一个初学者,我想可能用@一类的东东吧,但不知如何使用,再请教一下高手了.
    无上感激,谢谢!!
      

  7.   

    insert t(图片列)--指定列
    select   
            * --这只有一列
    from   
            openrowset(bulk   N'd:\222\bird1.jpg',single_blob)   a 
      

  8.   

    楼主下次在CSDN上留言,
    不要在已经结贴上发信息,
    偶一般不去看--------
      

  9.   

     使用 OPENROWSET 将文件数据大容量插入 varbinary(max) 列中
    以下示例创建一个用于演示的小型表,并将名为 Text1.txt 的文件(位于 C: 根目录)中的文件数据插入 varbinary(max) 列中。USE AdventureWorks
    GO
    CREATE TABLE myTable(FileName nvarchar(60), 
      FileType nvarchar(60), Document varbinary(max))
    GOINSERT INTO myTable(FileName, FileType, Document) 
       SELECT 'Text1.txt' AS FileName, 
          '.txt' AS FileType, 
          * FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document
    GO更为详细的信息可到http://msdn.microsoft.com/zh-cn/library/ms190312.aspx此处查看
      

  10.   

    <二进制数据>请问各位同仁,数据库里出现这种字样是否已插成功
      

  11.   

    <二进制数据>请问各位同仁,数据库里出现这种字样是否已插成功