چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
با سلام
با کد زیر برای Restore کردن استفاده میکنم. اما این در شرایطی جواب میده که بتونم با دیتابیس ارتباط برقرار کنم. اگه دیتابیس به هر دلیلی حذف شده باشه و یا جداولش حذف شده باشن این کد عملا کاربردی نخواهد داشت.
چطور میشه هنگام لود برنامه اول دیتابیس رو چک کنه اگه دیتابیس و یا جداولش وجود نداشت پیغام بده. و با تایید کاربر عمل Restore انجام بشه. البته حتما باید ساخت دیتابیس و جداولش هم در کد گنجانده شود. public void Restore(string strFileName)
{
try
{
if (strFileName != string.Empty)
{
string command =
"ALTER DATABASE matab SET OFFLINE with ROLLBACK IMMEDIATE RESTORE DATABASE matab FROM DISK = '" +
strFileName + "' WITH REPLACE";
var oConnection =
new SqlConnection("server=localhost;Integrated security=true;database=matab");
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
var oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
MessageBox.Show(". بازيابی اطلاعات از نسخه پشتيبان با موفقيت انجام شد");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
طبق این کد چک میکنم ولی با اینکه این دیتابیس وجود داره مقدار رو 1- برمیگردونه.
public bool isDBExist()
{
string connString = "server=localhost;Integrated security=true";
string cmdText = "SELECT name FROM sys.databases WHERE name = 'matab'";
bool bRet = false;
using (SqlConnection sqlConnection = new SqlConnection(connString))
{
sqlConnection.Open();
using (SqlCommand sqlCmd = new SqlCommand(cmdText, sqlConnection))
{
int nRet = sqlCmd.ExecuteNonQuery();
if (nRet <= 0)
{
bRet = false;
}
else
{
bRet = true;
}
}
}
return bRet;
}
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
این تیکه سلکت آیا تو خود sql داره دیتا برمیگردونه؟
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
نقل قول:
نوشته شده توسط
parvizwpf
این تیکه سلکت آیا تو خود sql داره دیتا برمیگردونه؟
منظورتون رو متوجه نمیشم . یعنی چی توی خود sql ؟ یعنی این سلکت رو توی sql اجرا کنم و جواب بگیرم؟ توی خود sql اجرا نکردم.
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
شرمنده سوال بی ربط میپرسم :
یعنی اگه مثلا - ویندوز بپره یا قاتی کنه که دوباره نصب کنی - بعد برنامه رو نصب کنی ، بک آپ که قبلا گرفتی جواب نمیده !؟
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
از مهندسین محترم کسی نیست کمک کنه؟ ببخشید اگه کسی میتونه کمک کنه ممنون میشم راهنمایی کنه. گرچه جناب parvizwpf راهنمایی کردن اما مشکلم حل نشد.!!
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
سلام.کد زیر واسه چک کردن کردن وجود دیتابیس.برای ریستور هم اگه جدول ها حذف بشه موردی نداره و عملیات ریستور کاملا انجام میشه
USE [master]
declare @result nvarchar(20)
IF (EXISTS (SELECT name
FROM master.dbo.sysdatabases
WHERE ('[' + name + ']' = 'dbName'
OR name = 'dbName')))
set @result= 'exists'
else
set @result= 'not exist'
بعد مقدار result رو بگیرین و بر اساس اون پیغام رو به کاربر نشون بدین
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
دقت داشته باشین که برای انجام این کار حتما با دیتابیس master کانکت بشین
نقل قول: چک کردن سالم بودن بانک اطلاعاتی قبل از لود شدن برنامه
نقل قول:
نوشته شده توسط
mz6488
سلام.کد زیر واسه چک کردن کردن وجود دیتابیس.برای ریستور هم اگه جدول ها حذف بشه موردی نداره و عملیات ریستور کاملا انجام میشه
USE [master]
declare @result nvarchar(20)
IF (EXISTS (SELECT name
FROM master.dbo.sysdatabases
WHERE ('[' + name + ']' = 'dbName'
OR name = 'dbName')))
set @result= 'exists'
else
set @result= 'not exist'
بعد مقدار result رو بگیرین و بر اساس اون پیغام رو به کاربر نشون بدین
این رو توی sql باید بنویسم؟ من توی خود sql تا حالا کد ننوشتم. اگه میشه لطفا دقیق تر بهم توضیح بدید ممنون میشم.
یعنی یه کوئری توی sql تعریف کنم و این کد رو توی اون ذخیره کنم؟ بعد کوئری رو کجا باید ذخیره کنم؟ و چطوری از توی C# باهاش ارتباط برقرار کنم?