您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> aspnet ASPnet 关于SQL2000数据库存取二进制文件

aspnet ASPnet 关于SQL2000数据库存取二进制文件

来源:网络整理     时间:2016/7/18 14:51:08     关键词:aspnet

关于网友提出的“aspnet ASPnet 关于SQL2000数据库存取二进制文件”问题疑问,本网通过在网上对“aspnet ASPnet 关于SQL2000数据库存取二进制文件”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:aspnet ASPnet 关于SQL2000数据库存取二进制文件
描述:

在数据库中存放文件,用的是Image数据类型
存没什么问题,断点看的到byte[]的长度,大小,和所存文件一样。
而取的时候就出现问题了,取出来的只有byte[]长度只有13,而存的时候是5000多的....大家帮看看是哪儿的问题
存代码:
yte[] Filebuffer = FileTobytes(FileUpload1.PostedFile.FileName.ToString().Trim());//这里的byte[]断点看是{byte[9729]}
                string Filetype = FileUpload1.PostedFile.FileName.ToString().Substring(FileUpload1.PostedFile.FileName.ToString().LastIndexOf("."), 4);
                SqlConnection myCon = new SqlConnection(strCon);
                string InsertStr = "Insert INTO News(Title,Context,NewTime,Files,FileType,ContentType) VALUES(@Title,@Context,@NewTime,@Files,@FileType,@ContentType) ";
                //插入数据库语句
                SqlCommand comm = new SqlCommand(InsertStr, myCon);
                comm.Parameters.Add(new SqlParameter("@Title", SqlDbType.VarChar,250));//标题
                comm.Parameters["@Title"].Value = TitleTextBox.Text.Trim();
                comm.Parameters.Add(new SqlParameter("@Context", SqlDbType.Text, 16));//内容
                comm.Parameters["@Context"].Value = FreeTextBox1.Text.Trim();
                comm.Parameters.Add(new SqlParameter("@NewTime", SqlDbType.DateTime, 8));//时间
                comm.Parameters["@NewTime"].Value = Convert.ToDateTime(PubTimeTextBox.Text);
                comm.Parameters.Add(new SqlParameter("@Files", SqlDbType.Image, 16));//二进制
                comm.Parameters["@Files"].Value = Filebuffer;
                comm.Parameters.Add(new SqlParameter("@FileType", SqlDbType.Char, 30));//数据类型
                comm.Parameters["@FileType"].Value = Filetype;
                comm.Parameters.Add(new SqlParameter("@ContentType", SqlDbType.Char, 30));//数据类型
                comm.Parameters["@ContentType"].Value = filecontenttype;
                myCon.Open();//打开数据库连接
                comm.ExecuteNonQuery();//添加数据
                myCon.Close();//关闭数据库
取代码:
byte[] data = (byte[])Ds.Tables["News"].Rows[0]["Files"];//而这里的只有{byte[16]}
FileStream fs = new FileStream(FileURL, FileMode.CreateNew);
                    fs.Write(data, 0, data.Length);
                    fs.Close();
存的时候也没报错....什么问题???


解决方案1:

new SqlParameter("@Context", SqlDbType.Text)
16去掉


以上介绍了“aspnet ASPnet 关于SQL2000数据库存取二进制文件”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2775262.html

aspnet相关图片

aspnet相关文章