在数据库中存放文件,用的是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();
存的时候也没报错....什么问题???
而取的时候就出现问题了,取出来的只有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();
存的时候也没报错....什么问题???
16去掉
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));//二进制
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();//关闭数据库