PDA

View Full Version : سوال: اطمینان از وجود یک دیتابیس در SQL Server



mhmoein
یک شنبه 22 فروردین 1389, 14:32 عصر
با سلام خدمت دوستان محترم

فرض کنید ما یک کنترل تکست باکس و دکمه جستجو داریم. حالا می خوام اگر داخل تکست باکس اسم یک بانک اطلاعاتی رو تو SQL جستجو کنم بهم بگو این بانک الان داخل SQL هست یانه .
دوستان کسی می تونه بگه با چه کدی می تونم اینکار رو انجام بدم. لطفا کمک کنید

Shahram_Shobeiri
یک شنبه 22 فروردین 1389, 15:03 عصر
if not exists(select * from sys.databases where name = 'Testing')
create database testing

کد فوق در صورت عدم وجود دیتا بیس Testing اون رو ایجاد میکنه. می تونید خط دوم رو با هر query دلخواه جایگزین کنید.

mhmoein
یک شنبه 22 فروردین 1389, 15:32 عصر
if not exists(select * from sys.databases where name = 'Testing')
create database testing

کد فوق در صورت عدم وجود دیتا بیس Testing اون رو ایجاد میکنه. می تونید خط دوم رو با هر query دلخواه جایگزین کنید.

دوست عزیز این کد رو خطا می ده
قبل از این کد نباید چیزی اضافه کنیم؟

mhmoein
دوشنبه 23 فروردین 1389, 11:59 صبح
دوستان کسی نمی تونه کمک کنه ؟ خواهشاً

hero4000
دوشنبه 23 فروردین 1389, 13:00 عصر
دوست عزیز این کد رو خطا می ده
قبل از این کد نباید چیزی اضافه کنیم؟

جواب همونه که دوستمون دادند

برادر من حداقل بنويس کجاي کد خطا ميده . يه توضيحي عکسي چيزي ميزي بذار تا دوستان بتونن راهنمايي کنن

Shahram_Shobeiri
دوشنبه 23 فروردین 1389, 13:48 عصر
من قبل از اینکه کدی رو بگذارم قبلاً اون رو تست کرده و از صحت اون مطمئن میشم. اون کد هیچ ایرادی نداره و در sql sever 2008 تست شده و به درستی کار کرده. شما بگرد ببین کجای کار اشتباه کردی. اگر اطلاعات بیشتری در مورد خطا بگذاری شاید بتونیم بهتون بگیم ایراد کارتون از کجاست!

mhmoein
سه شنبه 24 فروردین 1389, 00:28 صبح
با تشکر از دوست محترم Shahram_Shobeiri - حتما همینطور هست اما خوب بنده صد در صد اشتباه کردم و نیاز به کمک شما دوستان دارم . این کد من هست اما خطا می ده :



PublicClass Form1
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ifnot exists(select * from sys.databases where name = 'Testing')
MsgBox(" ")
EndIf
EndSub
EndClass


تصویر خطا رو هم ضمیمه کردم . بازم تشکر از شما.

sari-1369
سه شنبه 24 فروردین 1389, 01:33 صبح
همون چیزی که فکر میکردم :لبخند:

دوست عزیز ، دستوری که دوستان معرفی کردن یک دستور sql هستش و تو محیط کد نویسی vb.net تعریف نشده هستش . شما باید در جایی مثل استورپروسیجر از این دستور استفاده کنی .

mhmoein
سه شنبه 24 فروردین 1389, 01:39 صبح
ببخشید دوست عزیز می شه بیشتر توضیح بدی آخه من مدت زیادی نیست با VB.NET کار می کنم ؟ ممنون می شم راهنمایی دقیق تری انجام بدی ؟

MJVMJV
سه شنبه 24 فروردین 1389, 08:50 صبح
شما برای این کار از LINQ استفاده کنید
new item
sql to linq
انتخاب table
new در کد فرم
خاصیتی داره به نام
DatabaseExists
که از نوع bool

با تشکر

sahele_sheni
سه شنبه 24 فروردین 1389, 10:06 صبح
دوست عزیز سعی کن از smo (sqlserver managment object) استفاده کنی

http://www.google.com/search?hl=fa&lr=lang_fa&client=opera&rls=en&ei=FQnES4z1MInr-QbN8rX7Dg&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CAQQBSgA&q=SQL+Server+Management+Objects+%D9%88%D8%AC%D9%88 %D8%AF+%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3&spell=1

mhmoein
سه شنبه 24 فروردین 1389, 11:15 صبح
ضمن تشکر از همه دوستانی که دارن کمک می کنند . متاسفانه من هنوز راهی پیدا نکردم که توی VB.NET کمکم کنه که البته تقصیر بی سوادی خود من تو این زمینه هست . اما امیدوارم بازم با کمک شما راه حل این موضوع رو پیدا کنم که با کد نویسی تو VB.NET این مشکل حل بشه ؟

ebrahimv
سه شنبه 24 فروردین 1389, 11:51 صبح
جواب که به شما دادن کاملا درسته و این هم کد VB کافیه کپی کنی و اجرا کنی


Dim cmd As New SqlClient.SqlCommand()
cmd.Connection = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;Integrated Security=True")
cmd.CommandText = "if not exists(select * from sys.databases where name = 'Testing') create database testing"
cmd.Connection.Open()
cmd.ExecuteNonQuery()

armin8651
سه شنبه 24 فروردین 1389, 12:21 عصر
این برنامه رو برات نوشتم امیدوارم به دردت بخوره

mhmoein
سه شنبه 24 فروردین 1389, 12:39 عصر
از همه دوستان بخاطر زحمتی که کشیدند تشکر می کنم . امیدوارم همیشه موفق باشید