关于网友提出的“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