I have written a code to add some files to database using grid. But I am unable to get the files in my code. This is my code
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data.SqlClient;
using
System.Configuration;
using
System.Data;
using
Telerik.Web.UI;
using
System.IO;
public
partial
class
_Default : System.Web.UI.Page
{
public
DataTable table;
public
SqlDataAdapter sqlDataAdapter =
new
SqlDataAdapter();
SqlConnection conn =
new
SqlConnection(ConfigurationManager.ConnectionStrings[
"DoraConnectionString"
].ConnectionString);
SqlCommand command =
new
SqlCommand();
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
}
}
protected
void
RadGrid1_NeedDataSource(
object
source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
command.Connection = conn;
string
selectQuery =
"Select * from Files"
;
table =
new
DataTable();
conn.Open();
try
{
//Select Query to populate the RadGrid with data from table Employees.
sqlDataAdapter.SelectCommand =
new
SqlCommand(selectQuery, conn);
sqlDataAdapter.Fill(table);
RadGrid1.DataSource = table;
}
finally
{
//Close the SqlConnection
conn.Close();
}
}
protected
void
RadGrid1_ItemCommand(
object
source, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.PerformInsertCommandName)
{
RadUpload upload = (RadUpload)e.Item.FindControl(
"RadUpload1"
);
foreach
(UploadedFile f
in
upload.UploadedFiles)
{
f.SaveAs(Server.MapPath(
"./"
+ f.GetName()));
}
GridEditFormInsertItem item = (GridEditFormInsertItem)e.Item;
//string EmployeeID = (insertedItem["EmployeeID"].Controls[0] as TextBox).Text;
string
FileName = (item[
"FileName"
].FindControl(
"RadUpload1"
)
as
RadUpload).UploadedFiles[0].GetName();
UploadedFile file = (item[
"FileName"
].FindControl(
"RadUpload1"
)
as
RadUpload).UploadedFiles[0];
int
Size = (
int
)file.InputStream.Length;
string
ContentType = GetFileContentType(FileName);
byte
[] bytes =
new
byte
[Size];
file.InputStream.Read(bytes, 0, (
int
)file.InputStream.Length);
DateTime Date = DateTime.Now;
try
{
//Open the SqlConnection
conn.Open();
//Update Query to insert into the database
string
insertQuery =
"INSERT into Files(FileName,FileData,Size,ContentType,Date) values(@FileName, @FileData,@Size, @ContentType, @Date)"
;
command.CommandText = insertQuery;
command.Connection = conn;
command.Parameters.AddWithValue(
"@FileName"
, FileName);
command.Parameters.AddWithValue(
"@FileData"
, bytes);
command.Parameters.AddWithValue(
"@Size"
, Size);
command.Parameters.AddWithValue(
"@ContentType"
, ContentType);
command.Parameters.AddWithValue(
"@Date"
, Date);
command.ExecuteNonQuery();
//Close the SqlConnection
conn.Close();
}
catch
(Exception ex)
{
RadGrid1.Controls.Add(
new
LiteralControl(
"Unable to insert Files. Reason: "
+ ex.Message));
e.Canceled =
true
;
}
}
if
(e.CommandName == RadGrid.UpdateCommandName)
{
GridEditFormItem item = (GridEditFormItem)e.Item;
//string EmployeeID = (insertedItem["EmployeeID"].Controls[0] as TextBox).Text;
string
FileName = (item[
"FileName"
].FindControl(
"RadUpload1"
)
as
RadUpload).UploadedFiles[0].GetName();
UploadedFile file = (item[
"FileName"
].FindControl(
"RadUpload1"
)
as
RadUpload).UploadedFiles[0];
int
Size = (
int
)file.InputStream.Length;
string
ContentType = GetFileContentType(FileName);
byte
[] bytes =
new
byte
[Size];
file.InputStream.Read(bytes, 0, (
int
)file.InputStream.Length);
DateTime Date = DateTime.Now;
try
{
//Open the SqlConnection
conn.Open();
//Update Query to insert into the database
string
insertQuery =
"update Files set FileName=@FileName, FileData=@FileData, Size=@Size, ContentType=@ContentType, Date=@Date where ID=@ID"
;
command.CommandText = insertQuery;
command.Connection = conn;
command.Parameters.AddWithValue(
"@FileName"
, FileName);
command.Parameters.AddWithValue(
"@FileData"
, bytes);
command.Parameters.AddWithValue(
"@Size"
, Size);
command.Parameters.AddWithValue(
"@ContentType"
, ContentType);
command.Parameters.AddWithValue(
"@Date"
, Date);
command.Parameters.AddWithValue(
"@ID"
, item.GetDataKeyValue(
"ID"
));
command.ExecuteNonQuery();
//Close the SqlConnection
conn.Close();
}
catch
(Exception ex)
{
RadGrid1.Controls.Add(
new
LiteralControl(
"Unable to update Files. Reason: "
+ ex.Message));
e.Canceled =
true
;
}
}
}
protected
void
RadGrid1_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridDataItem)
{
LinkButton lnk = (e.Item
as
GridDataItem)[
"Preview"
].Controls[0]
as
LinkButton;
lnk.OnClientClick =
"Preview("
+ (e.Item
as
GridDataItem).GetDataKeyValue(
"ID"
) +
"); return false;"
;
}
}
private
string
GetFileContentType(
string
filename)
{
string
contentType =
string
.Empty;
int
indexOfDot = filename.LastIndexOf(
"."
);
if
(indexOfDot > 0)
{
++indexOfDot;
string
ext = filename.Substring(indexOfDot, (filename.Length - indexOfDot));
if
(!
string
.IsNullOrEmpty(ext))
{
switch
(ext.ToLower().Trim())
{
case
"doc"
:
case
"docx"
:
contentType =
"application/msword"
;
break
;
case
"pdf"
:
contentType =
"application/pdf"
;
break
;
case
"xls"
:
case
"xlsx"
:
contentType =
"application/ms-excel"
;
break
;
case
"rar"
:
contentType =
"application/winrar"
;
break
;
case
"txt"
:
contentType =
"text/plain"
;
break
;
case
"gif"
:
contentType =
"image/gif"
;
break
;
case
"jpeg"
:
case
"jpg"
:
contentType =
"image/jpeg"
;
break
;
case
"png"
:
contentType =
"image/x-png"
;
break
;
case
"tif"
:
contentType =
"image/tiff"
;
break
;
case
"bmp"
:
contentType =
"image/x-ms-bmp"
;
break
;
default
:
contentType =
"application/octet-stream"
;
break
;
}
}
}
return
contentType;
}
}