PDA

View Full Version : سوال: فایل Word هر موقع که بخواهد ذخیره می شود



forodo
یک شنبه 24 فروردین 1393, 14:40 عصر
سلام
با تابع زیر فایل Wordای را که می خوام از بانک اطلاعاتی فراخوانی می کنم:
SqlConnection con =
new SqlConnection(clsForms.ConnectionString);

SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();

da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = con;
da.SelectCommand.CommandType = CommandType.Text;
da.SelectCommand.CommandText = @"SELECT FileFile, FormateFile
FROM tblLetterSadere
WHERE ID = " + Program.LetterID;

con.Open();
da.Fill(ds, "Word_Get");
con.Close();

buffer123 = (byte[])ds.Tables["Word_Get"].Rows[0]["FileFile"];
FormateFile123 = ds.Tables["Word_Get"].Rows[0]["FormateFile"].ToString();
با کدهای زیر یک فایل temp درست می کنم و فایل Wordای که از بانک فراخوانی کردم رو جایگزین اون می کنم و اون رو اجرا می کنم:
GetVaredeLetter();
string TempFile = Path.GetTempFileName();
File.WriteAllBytes(TempFile, buffer123);
File.Move(TempFile, TempFile + FormateFile123);
Process Proc = Process.Start(TempFile + FormateFile123);
ForUpdateWord = TempFile + FormateFile123;
و با تابع زیر که داخل رویداد اکتیو فرمم نوشته شده فایل Wordای رو که باز کردم و بعد از تغییرات اون رو ذخیره کردم داخل بانک ذخیره می کنم:
private void DoUpdate()
{
try
{
SqlConnection objconnection =
new SqlConnection(clsForms.ConnectionString);


SqlCommand objcommand1 = new SqlCommand();

objcommand1.Connection = objconnection;
objcommand1.CommandText = @"UPDATE tblLetterSadere
SET FileFile=@FileFile
WHERE ID = " + Program.LetterID;

objcommand1.Parameters.AddWithValue("@FileFile", File.ReadAllBytes(ForUpdateWord));


objconnection.Open();
objcommand1.ExecuteNonQuery();
objconnection.Close();
}
catch (Exception)
{

}
}

حالا مشکل اینجاست که بعضی موقع ها که با CTRL+S ورد رو سیو می کنم داخل بانک ذخیره می شه ولی بعضی مواقع ذخیره نمی شه.

forodo
سه شنبه 26 فروردین 1393, 13:23 عصر
وقتی که سیو نمی کنم و می خوام از ورد خارج بشم از من سوال می کنه که می خوای فایل رو ذخیره بکنم یا نه.
وقتی که بله رو می زنم و از ورد خارج می شه و دوباره وارد همون فایل می شم می بینم سیو نشده. تو این حالت هم بعضی مواقع سیو می شه.
چرا عشقی کار می کنه؟

behzadkhan
سه شنبه 26 فروردین 1393, 14:12 عصر
با سلام

لطفا کار این خط را توضیح دهید:

ForUpdateWord = TempFile + FormateFile123;

با تشکر

forodo
سه شنبه 26 فروردین 1393, 18:18 عصر
این آدرس فایل رو می ریزه داخل ForUpdateWord برای اینکه در تابع DoUpdate اون فایل رو داخل بانک ذخیره کنه.

forodo
چهارشنبه 27 فروردین 1393, 18:32 عصر
چرا آخه وقتی که ورد رو ذخیره نمی کنم و از ورد خارج می شم و از من سوال می پرسه که می خوای ذخیره کنی و من می گم آره ولی ذخیره نمی شه ولی با دکمه های CTRL+S ذخیره می شه؟

forodo
یک شنبه 31 فروردین 1393, 17:47 عصر
یافتم.
توی رویداد اکتیو فرم کد دخیره ورد داخل بانک رو نوشته بودم.
موقعی که با Ctrl+S ورد رو ذخیره می کردم و از ورد خارج می شدم فایل ورد من ویرایش شده بود و رویداد اکتیو فرم اجرا می شد که تمام اطلاعات جدید داخل بانک ذخیره می شد.
ولی وقتی با ضربدر خارج می شدم و می گفتم که ذخیره کن از ورد خارج می شد ولی تا بخواد اطلاعات ورد ذخیره بشه رویداد اکتیو من اجرا می شود و فایل رو داخل بانک ذخیره می کرد ولی اونی رو ذخیره می کرد که هنوز ویرایش نشده چون سرعت اجرای کد من بیشتر از سرعت ذخیره اطلاعات ورد بود.
برای همین این رو نوشتم درست شد. قبل از عمل ذخیره ورد داخل بانک .
Thread.Sleep(1000);

ciscozagros
دوشنبه 10 فروردین 1394, 06:40 صبح
سلام خسته نباشید
یه سوال ابتدایی من می خوام برنامه سند ورد با تمام امکاناتش در فرمم نمایش داده بشه چکار باید بکنم مرسی

ciscozagros
دوشنبه 17 فروردین 1394, 10:58 صبح
میشه نمونه فایلتو بذاری ما هم استفاده کنیم برا ثوابش میگم ممنون