PDA

View Full Version : ذخيره doc docx pdf در بانك sql



x_p_sp2
یک شنبه 19 دی 1389, 10:27 صبح
با سلام
دوستان اگه ميشه در خصوص ذخيره فايلهايي با پسوند doc docx pdf در بانك sql و همچنين نمايش و بازيابي اونها توضيح بديد و ترجيحا اگه كدي هم در اين مورد باشه ممنون مشيم.

هم اكنون نيازمند ياريتان هستم

meysamrt
یک شنبه 19 دی 1389, 11:41 صبح
يه جدول با مشخصات زير بساز:


CREATE TABLE [dbo].[tbl](
[id] [int] IDENTITY(1,1) NOT NULL,
[content] [varbinary](max) NOT NULL,
[name] [nvarchar](1024) NOT NULL,
CONSTRAINT [PK_tbl] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]



بعد تو برنامه namespace هاي زير رو اضافه كن:


using System.Data.SqlClient;
using System.IO;


كد ذخيره سازي فايل:


SqlConnection conn = new SqlConnection("server=(local);database=mydb;integrated security=true");
SqlCommand comm = new SqlCommand("insert into tbl (name,content) values (@name,@content)", conn);

FileInfo file = new FileInfo(@"c:\myfile.pdf");
FileStream sr = new FileStream(file.FullName, FileMode.Open, FileAccess.Read);
byte[] content = new byte[sr.Length];
sr.Read(content, 0, content.Length);
sr.Close();
sr.Dispose();

comm.Parameters.AddWithValue("@name", file.Name);
comm.Parameters.AddWithValue("@content", content);

conn.Open();
comm.ExecuteNonQuery();
conn.Close();


كد بازيابي فايل:


SqlConnection conn = new SqlConnection("server=(local);database=mydb;integrated security=true");
SqlCommand comm = new SqlCommand("select * from tbl where id=1", conn);
conn.Open();
DataTable table = new DataTable();
table.Load(comm.ExecuteReader());
conn.Close();

if (table.Rows.Count > 0)
{
FileInfo file = new FileInfo(Path.Combine("d:\\", table.Rows[0]["name"].ToString()));
FileStream sr = new FileStream(file.FullName, FileMode.Create, FileAccess.Write);
byte[] content = (byte[]) table.Rows[0]["content"];
sr.Write(content, 0, content.Length);
sr.Flush();
sr.Close();
sr.Dispose();
}