Wednesday, November 26, 2008

Save And Retrive Any format file to database

//--Data base table required sql server-2005
column 1.Id(Pk)
2.FileName(nvarchar(max))
3.FileData(varbinary(max))


private void SaveFile()
{
try
{
if (txtFile .Text != "")
{
FileStream fs;
fs = new FileStream(txtFile.Text, FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryReader br;
br=new BinaryReader(fs);
////a byte array to read the image
byte[] picbyte = br.ReadBytes ((int)fs.Length);
//byte[] picbyte = new byte[fs.Length];
// br.Close();
fs.Close();
//open the database using odp.net and insert the data
string connstr = "Data Source=IT-DHAVAL\\SQLEXPRESS;Initial Catalog=treeview;User ID=sa;PWD=sa123";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
string query;
SqlParameter Fileparameter = new SqlParameter();
query = "insert into files(FileName,FileData) values('" +txtFile.Text + "',"+"@pic)";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.Add("pic",SqlDbType.VarBinary,picbyte.Length).Value=picbyte;
cmd.ExecuteNonQuery();
MessageBox.Show("FileSave");
cmd.Dispose();
conn.Close();
conn.Dispose();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnRetrive_Click(object sender, EventArgs e)
{
string connstr = "Data Source=IT-DHAVAL\\SQLEXPRESS;Initial Catalog=treeview;User ID=sa;PWD=sa123";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlDataAdapter empadap1 = new SqlDataAdapter();
empadap1.SelectCommand = new SqlCommand("SELECT * FROM files", conn);
DataSet dset = new DataSet("dset");
empadap1.Fill(dset);
DataTable dtable;
dtable = dset.Tables[0];
DataTable dataTable = dset.Tables[0];
foreach (DataRow dataRow in dataTable.Rows)
{
FileStream FS1 = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\" + (string)dataRow[1], FileMode.Create);
byte[] blob = (byte[])dataRow[2];
FS1.Write(blob, 0, blob.Length);
FS1.Close();
FS1 = null;
}
}