Hi,
I want to insert a .rar file into my database, i tried many times, but i couldnt.
May you help me please?
The database is called db_AkiraNetwork
The table is called tbl_driver:
iddriver - int - PK and Auto Increment
tipo - nchar(15)
so - nchar(10)
arquitectura - nchar(3)
ficheiro - varbinary(MAX)
The code i made in ASP is:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="adddriver.aspx.cs" Inherits="admin_adddriver" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:FormView ID="fvAddDriver" runat="server" DataKeyNames="iddriver" DataSourceID="SqlDSAddDriver" DefaultMode="Insert">
<InsertItemTemplate>
Tipo:
<asp:TextBox ID="txtTipo" runat="server" Text='<%# Bind("tipo") %>' />
<br />
Sistema Operativo:
<asp:TextBox ID="txtSO" runat="server" Text='<%# Bind("so") %>' />
<br />
Arquitectura:
<asp:TextBox ID="txtArquitectura" runat="server" Text='<%# Bind("arquitectura") %>' />
<br />
Ficheiro:
<asp:FileUpload runat="server" ID="fuFicheiro" Text='<%# Eval("ficheiro") %>'/>
<br />
<asp:Button ID="btnInsert" runat="server" CausesValidation="True" CommandName="Insert" Text="Inserir"/>
<asp:Button ID="btnCancel" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancelar" />
</InsertItemTemplate>
</asp:FormView>
<asp:Label ID="lblMensagem" runat="server" Text=""></asp:Label>
<asp:SqlDataSource ID="SqlDSAddDriver" runat="server" ConnectionString="<%$ ConnectionStrings:CSAkiraNetwork %>" InsertCommand="INSERT INTO [tbl_driver] ([tipo], [so], [arquitectura], [ficheiro]) VALUES (@tipo, @so, @arquitectura, @ficheiro)"
SelectCommand="SELECT * FROM [tbl_driver]"
UpdateCommand="UPDATE [tbl_driver] SET [tipo] = @tipo, [so] = @so, [arquitectura] = @arquitectura, [ficheiro] = @ficheiro WHERE [iddriver] = @iddriver">
<InsertParameters>
<asp:Parameter Name="tipo" Type="String" />
<asp:Parameter Name="so" Type="String" />
<asp:Parameter Name="arquitectura" Type="String" />
<asp:Parameter Name="ficheiro" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="tipo" Type="String" />
<asp:Parameter Name="so" Type="String" />
<asp:Parameter Name="arquitectura" Type="String" />
<asp:Parameter Name="ficheiro" Type="Object" />
<asp:Parameter Name="iddriver" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
<br />
<br />
</asp:Content>
And the C# is:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;
public partial class admin_adddriver : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
// Read the file and convert it to Byte Array
FileUpload fAux = new FileUpload();
fAux = (FileUpload)fvAddDriver.FindControl("fuFicheiro");
string filePath = fAux.PostedFile.FileName;
string filename = Path.GetFileName(filePath);
string ext = Path.GetExtension(filename);
string contenttype = String.Empty;
//Set the contenttype based on File Extension
switch(ext)
{
case ".rar":
contenttype = "application/x-rar-compressed";
break;
}
if (contenttype != String.Empty)
{
Stream fs = fAux.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
//insert the file into database
string strQuery = "insert into tbl_driver(tipo, so, arquitectura, ficheiro)" +
" values (@tipo, @so, @arquitectura, @ficheiro)";
SqlCommand cmd = new SqlCommand(strQuery);
cmd.Parameters.Add("@tipo", SqlDbType.VarChar).Value = contenttype;
cmd.Parameters.Add("@so", SqlDbType.VarChar).Value = contenttype;
cmd.Parameters.Add("@arquitectura", SqlDbType.VarChar).Value = contenttype;
cmd.Parameters.Add("@ficheiro", SqlDbType.Binary).Value = bytes;
InsertUpdateData(cmd);
lblMensagem.ForeColor = System.Drawing.Color.Green;
lblMensagem.Text = "Inserido com Sucesso";
}
else
{
lblMensagem.ForeColor = System.Drawing.Color.Red;
lblMensagem.Text = "Estilo de Formato Desconhecido" +
"Upload apenas ficheiros .rar";
}
}
private Boolean InsertUpdateData(SqlCommand cmd)
{
String strConnString = System.Configuration.ConfigurationManager
.ConnectionStrings["CSAkiraNetwork"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try
{
con.Open();
cmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
Response.Write(ex.Message);
return false;
}
finally
{
con.Close();
con.Dispose();
}
}
}