У меня небольшой вопрос ... Я использую BLOB-файлы для загрузки своих файлов, и я могу также загружать их, например, в виде фильмов или mp3, но когда я пытаюсь загрузить фотографию, у меня всегда есть это исключение ... Можеткто-нибудь подскажет почему?
Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.
Description: An unhandled exception occurred during the execution of the current
web request. Please review the stack trace for more information about the error
and where it originated in the code.
Exception Details: System.InvalidCastException: Unable to cast object of type
'System.DBNull' to type 'System.Byte[]'.
Source Error:
An unhandled exception was generated during the execution of the current web requt.
Information regarding the origin and location of the exception can be identified using
the exception stack trace below.
Спасибо за помощь.
This is the code to retrieve them .
string filename = Request["file"].ToString();
var conString = ConfigurationManager.ConnectionStrings["LocalSqlServer"];
string strConnString = conString.ConnectionString;
SqlConnection dbConnection = new SqlConnection(strConnString);
dynamic queryString = ("SELECT Data,ContentType FROM Files WHERE Name = '" + filename + "'");
SqlCommand theCommand = new SqlCommand(queryString, dbConnection);
dbConnection.Open();
SqlDataReader reader = theCommand.ExecuteReader();
if (reader.Read() && reader != null)
{
Byte[] bytes;
bytes = Encoding.UTF8.GetBytes(String.Empty);
bytes = (Byte[])reader["Data"];
string contentType = reader["ContentType"].ToString();
Response.ContentType = contentType;
Response.AddHeader("content-disposition", "attachment; filename=" + filename + "");
Response.BinaryWrite(bytes);
reader.Close();
}
dbConnection.Close();
И для загрузки их:
dbConnection.Open();
string queryString = "INSERT INTO Files (Name,Path,UserUpload,Date,Data,ContentType,Size) VALUES (@Name,@Path,@UserUpload,@Date,@Data,@ContentType,@Size);" + "SELECT CAST(scope_identity() AS int)";
SqlCommand theCommand = new SqlCommand(queryString, dbConnection);
theCommand.Parameters.AddWithValue("@Name", FileUpload1.FileName);
theCommand.Parameters.AddWithValue("@Path", GetTheCurrentDirectory(MyTreeView.SelectedNode));
theCommand.Parameters.AddWithValue("@UserUpload", Request.Cookies["UserSettings"]["UserName"]);
theCommand.Parameters.AddWithValue("@Date", DateTime.Now);
theCommand.Parameters.AddWithValue("@Data", FileUpload1.FileBytes);
theCommand.Parameters.AddWithValue("@ContentType", FileUpload1.PostedFile.ContentType);
theCommand.Parameters.AddWithValue("@Size", FileUpload1.PostedFile.ContentLength);
int newFid = (Int32)theCommand.ExecuteScalar();
dynamic queryStringFolder = "INSERT INTO FILES_FOLDERS (File_Id,Folder_Id) VALUES (@FileId,@FolderId);";
theCommand = new SqlCommand(queryStringFolder, dbConnection);
theCommand.Parameters.AddWithValue("@FileId", newFid);
theCommand.Parameters.AddWithValue("@FolderId", MyTreeView.SelectedValue);
theCommand.ExecuteNonQuery();