PDA

View Full Version : حرفه ای: یک نکته فنی در ارتباط با پایگاه داده



tina.programer
جمعه 22 بهمن 1389, 23:35 عصر
سلام :

من برای اینکه تو سی شارپ با پایگاه داده sql ارتباط برقرار کنم اول using می کنم بعد کد های زیر رو می نویسم :


SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;Attachdbfilename=D:\dddd\Datab ase\mydb.mdf; integrated security=true;user instance=true";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from tblmer";
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();

توی این کد هیچ اشکالی نیست و اطلاعاتم رو نشون میده تو دیتاگرید اما یه نکته ای هست من نمی خوام آدرس رو از دایرکتوری بدم یعنی فردا من این برنامه رو بردم تو یه سیستم دیگه باید حتماً توی اون دایرکتوری و تو اون پوشه باشه دیتابیس تاکار کنه

ولی یه کد دقیقاً توی vb.net دارم این کد هم درست کار می کنه اما این کد مثل کدهای بالای c شارپ نیست و دیتابیس رو هرکجا که دوست داشتیم می تونیم استفاده کنیم و فقط نیاز هست که attach بشه می خوام مثل اینم برای سی شارپ داشته باشم :


Dim strConnection As String = "Data Source=.\SQLEXPRESS; Initial Catalog=hospital;" _
& "Integrated Security=True"
Dim cn As SqlClient.SqlConnection = New SqlClient.SqlConnection(strConnection)
cn.Open()
Dim strSelect As String = "SELECT * FROM bimar "
Dim dscmd As New SqlClient.SqlDataAdapter(strSelect, cn)
Dim ds As New DataSet()
dscmd.Fill(ds, "bimar")
strSelect = "Select * from bimar
"')"
dscmd = New SqlClient.SqlDataAdapter(strSelect, cn)
dscmd.SelectCommand.ExecuteNonQuery()
cn.Close()

saeidi.yusuf
شنبه 23 بهمن 1389, 09:18 صبح
دوست عزیز سلام:
مسئله هرچی هست توی connection string شما است.من فکر می کنم با این کار مشکل شما حل بشه.database رو توی یکی از پوشه های برنامه تون قرار بدید بعدش با استفاده از تابع " مسیر داخلی دیتابیس\"+()Directory.GetCurrentDirectory
مسیر database تون رو توی connectionString ذخیره کنید.
امیدوارم سوالتون رو درست فهمیده باشم.

saeidi.yusuf
شنبه 23 بهمن 1389, 09:22 صبح
دوست عزیز سلام:
مسئله هرچی هست توی connection string شما است.من فکر می کنم با این کار مشکل شما حل بشه.database رو توی یکی از پوشه های برنامه تون قرار بدید بعدش با استفاده از تابع " مسیر داخلی دیتابیس\"+()Directory.GetCurrentDirectory
مسیر database تون رو توی connectionString ذخیره کنید.
امیدوارم سوالتون رو درست فهمیده باشم.

tina.programer
شنبه 23 بهمن 1389, 15:35 عصر
مثلاً پروژه من داخل یه پوشه هست بعد داخل اون پروژه یه دایرکتوری ایجاد کردم بنام Databaseمی خوام داخلش فایل Mdf ام رو ارتباط بده بدون دادن مسیر d و f و وغیره :قلب: ممنون میشم کمکم کنید . :افسرده:

میشه کدشو کامل قرار بدید ؟

RIG000
شنبه 23 بهمن 1389, 19:41 عصر
بانکت رو تو شاخه bin-debug بذار
con.ConnectionString = @"Data Source=.\SQLEXPRESS;Attachdbfilename="+ application.starpath+ "; integrated security=true;user instance=true";
یا جای application starpath اسنو بنویس
Enveriomet.currentdairectori در ضمن تلفظ ها رو درست ننوشتم وقتی کلمه رو بزنی میاد اکه تو کانکشن باز خطا گرفت بیا اینجا بگو .

tina.programer
یک شنبه 24 بهمن 1389, 01:38 صبح
خطا گرفت من نمی خوام توی debug داشته باشم می خوام دقیقاً یه پوشه کنار پروژه ام داشته باشم از اون بخونه بدون آدرس دادن دایرکتوری مثل همون کدی که دادم برای وی بی دات نت :گریه: