PDA

View Full Version : سوال: بررسی وجود database



ordebehesht
جمعه 18 تیر 1395, 23:39 عصر
سلام من یه مدتی بود که نبودم اندازه 4 سال هیچ خبری ندارم چی بچی این و گفتم احیانا مدیران محترم تایپیک منو پاک نکنن
سوال من اینه من میخوام کدی بنویسم در سی شارپ که ابتدا بررسی کنه ایا این دیتابیس وجود داره یا نه در صورت عدم وجود ایجاد کنه دیتابیس رو
خیلی تو سایتها گشتم هم فارسی هم لاتین متاسفانه به چیز بدردبخوری نرسیدم
ممنون از راهنماییتون

NasimBamdad
شنبه 19 تیر 1395, 02:10 صبح
منم دنبال این موضوع هستم

ordebehesht
شنبه 19 تیر 1395, 18:45 عصر
یعنی کسی تا حالا برنامه های ننوشته که هنگام نصب نرم افزار بررسی کنه ببینه پایگاه داده هست یا نیست در ثورت نبودن بیاد کل دیتا بیس رو ایجاد کنه با جداول و فلان و بهمان
همه پایگاه رو یعنی attach کردن
فکر نکنم این جوری باشه

ronix3
شنبه 19 تیر 1395, 19:06 عصر
سلام می تونید برای وجود دیتابیس از
if(System.IO.File.Exist("database.mdf")

و برای ایجاد دیتابیس هم از
"create database database_name"

استفاده کنید

ordebehesht
شنبه 19 تیر 1395, 19:24 عصر
ممنون از راهنمایی تون ولی تا جایی که من میدونم وقتی دیتابیس ایجاد میشه وارد جایی به اسم master میشه منظور من از بیت دیتابیس های اتچ شده تو sql بررسی بشه که ایا همچین دیتابسی داره یا نه
اما در مورد قسمت دوم جوابتون من با این خط مشکلی ندارم و ایجاد کردم ولی کمی دقیقتر میخوام ایجاد کنم منظورم اندازه محل دیتابیس و ... که متاسفانه به جایی نرسیدم

ولی دیدم همچین نرم افزاری که ابتدا دیتابیس ایجاد شده بعد نرم افزار اجرا میشه

دلتنگ اسمان
یک شنبه 20 تیر 1395, 05:26 صبح
با سلام

private void create_Database()
{
con = new SqlConnection();
com = new SqlCommand();

String str;

SqlConnection Connection = new SqlConnection(constr);
Connection.Open();

con.ConnectionString = constr;
try
{

string executable = System.Reflection.Assembly.GetExecutingAssembly(). Location;
string path = (System.IO.Path.GetDirectoryName(executable));

bool exists = CheckDatabaseExists(constr, "Mydatabase");//Mydatabase

if (!exists)
{
str = "CREATE DATABASE Mydatabase ON PRIMARY " +
"(NAME = Mydatabase_Data, " +
"FILENAME = '" + Application.StartupPath + "\\Mydatabase.mdf', " +
"SIZE = 4MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10%) " +
"LOG ON (NAME = Mydatabase_Log, " +
"FILENAME = '" + Application.StartupPath + "\\MydatabaseLog.ldf', " +
"SIZE = 4MB, " +
"MAXSIZE = UNLIMITED, " +
"FILEGROWTH = 10%)";

ConnectionState state = Connection.State;

SqlCommand myCommand = new SqlCommand(str, con);

con.Open();

myCommand.ExecuteNonQuery();

con.Close();


}

}
catch (System.Exception ex)
{
MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
if (con.State == ConnectionState.Open)

con.Close();

}
}

دلتنگ اسمان
یک شنبه 20 تیر 1395, 05:39 صبح
ساخت جدول :

private void create_table(){

createtablestr =
"CREATE TABLE useres (username1 NVARCHAR(50) NOT NULL, " +
"password1 NVARCHAR(150)NOT NULL , " +
"PRIMARY KEY(username1,password1 ))";

command = new SqlCommand(createtablestr, connection);
result = command.ExecuteNonQuery();


}

محمد آشتیانی
یک شنبه 20 تیر 1395, 08:59 صبح
سلام
این کوئری در صورت وجود دیتابیس (YourDbName)، مقدار یک ( 1 ) رو برمیگردونه و در صورت عدم وجود ، مقدار صفر

SELECT CAST(CASE WHEN EXISTS(SELECT * FROM sys.sysdatabases where name='YourDbName') THEN 1 ELSE 0 END AS BIT)