I am trying to configure a way to add a file upload command to a page that uses Stored Procedures to insert data to SQL tables. Below, is my code. See, the problem is...I need to insert the File Upload as an in (FileUpload Id) where the btnSubmit_Click event occurs. the Stored Procedure error says "No File Upload was received. I have no other error.
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.IO;
namespace HelpDesk
{
public partial class _Default : System.Web.UI.Page
{
#region Declarations
HelpDesk hd = new HelpDesk();
#endregion
#region Methods
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadCombos();
}
if (Session["New"] != null)
{
LoggedInLabel.Text += Session["New"].ToString();
}
else
Response.Redirect("Login.aspx");
SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings["ReportServerConnectionString"].ConnectionString);
SqlDataReader profileReader = null;
string userDataQuery = "SELECT * FROM EmployeeTest WHERE Username ='" + LoggedInLabel.Text + "'";
conn.Open();
SqlCommand cmd = new SqlCommand(userDataQuery, conn);
profileReader = cmd.ExecuteReader();
while (profileReader.Read())
{
fnameTB.Text = profileReader["FirstName"].ToString();
lnameTB.Text = profileReader["LastName"].ToString();
emailTB.Text = profileReader["Email"].ToString();
}
conn.Close();
}
protected void LoadCombos()
{
ICollection<Severity> severity = Severity.GetSeverities();
ddlSeverity.DataTextField = "severity";
ddlSeverity.DataValueField = "id";
ddlSeverity.DataSource = severity;
ddlSeverity.DataBind();
ICollection<Status> status = Status.GetStatuses();
ddlStatus.DataTextField = "status";
ddlStatus.DataValueField = "id";
ddlStatus.DataSource = status;
ddlStatus.DataBind();
ICollection<Department> dept = Department.GetDepartments();
ddlDept.DataTextField = "department";
ddlDept.DataValueField = "id";
ddlDept.DataSource = dept;
ddlDept.DataBind();
ICollection<Employee> emp = Employee.GetEmployee();
ddlEmp.DataTextField = "name";
ddlEmp.DataValueField = "empid";
ddlEmp.DataSource = emp;
ddlEmp.DataBind();
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
hd.fname = fnameTB.Text;
hd.lname = lnameTB.Text;
hd.email = emailTB.Text;
hd.severity = Convert.ToInt32(ddlSeverity.SelectedValue);
hd.status = Convert.ToInt32(ddlStatus.SelectedValue);
hd.department = Convert.ToInt32(ddlDept.SelectedValue);
hd.comments = commentsTB.Text;
hd.FileUpload = Convert.ToString(FileUpload1.HasFile);
hd.employee = Convert.ToInt32(ddlEmp.SelectedValue);
hd.Save();
phForm.Visible = false;
phSuccess.Visible = true;
}
#endregion
protected void btnUpload(object sender, EventArgs e)
{
string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
string contentType = FileUpload1.PostedFile.ContentType;
using (Stream fs = FileUpload1.PostedFile.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
string constr = ConfigurationManager.ConnectionStrings["ReportServerConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
string query = "insert into tblFiles values (@Name, @ContentType, @Data)";
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Name", filename);
cmd.Parameters.AddWithValue("@ContentType", contentType);
cmd.Parameters.AddWithValue("@Data", bytes);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
}
}