خطاي Timeout expired در هنگام ري استور ديتابيس
سلام دوستان برنامه نويس
من از اين كد براي ري استور ديتابيس استفاده ميكنم:
اين كديه كه OpenFileDialog رو باهاش باز ميكنم
privatevoid button2_Click(object sender, EventArgs e)
{
string strFileName = string.Empty;
openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "Restore SQL File";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
Restore(strFileName);
}
}
و اينم تابع ري استور:
privatevoid Restore(string strFileName)
{
try
{
string command = "ALTER DATABASE Fix SET SINGLE_USER with ROLLBACK IMMEDIATE " +
"use master " +
" RESTORE DATABASE Fix FROM DISK='" + strFileName + "'";
this.Cursor = Cursors.WaitCursor;
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = newSqlConnection("Data Source=.;Initial Catalog=Fix;Integrated Security=True");
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = newSqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show(" ");
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd :" + ex.Message);
}
}
مشكل اينه كه وقتي ديتابيس برنامه م رو توي Commandها مي نويسم، خطاي :
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
رو ميده ولي وقتي با ديتابيس Pubs خود SqlServer تست ميكنم يا ديتابيسي غير از ديتابيس خود برنامه رو تست ميكنم درست جواب ميده
ممنون ميشم راهنماييم كنين.
نقل قول: خطاي Timeout expired در هنگام ري استور ديتابيس
توی backup گرفتن از دیتابیس معمولا مشکلی پیش نمیاد
ولی توی Restore کردنه که همیشه مشکل داریم
مشکلات برگردوندن اطلاعات میتونه اینها باشه
1 - کاربرای دیگه بهش وصلن
2 - خود ویژوال بهش وصله
3 - اتصال خود برنامه به دیتابیس هست
4 - حالت برگرداندن کامل(Full restore برای اون ) setنشده
5 - رونویسی فایل ها در صورت موجودبودن دیتابیس در مسیر تعیین شده ، set نشده
6 - برای restore کردن نیاز به مجوز داخلی sql هست که با user,pass که به sql وصل میشیم تا restore کنیم اون مجوز رو نداره
....
برای درک بهتر ، یک پروژه هست برو اونو نگاه کن
کد هاش بدردت میخوره
http://midnightprogrammer.net/post/B...e-using-C.aspx