PDA

View Full Version : سوال: نحوه اعوال تغییرات به بانک اطلاعاتی



majid1004
شنبه 21 شهریور 1388, 01:23 صبح
:عصبانی++:سلام من میخواستم بپرسم چطور تغییرات را به بانک اطلاعاتمون انتقال بدیم من این کد زیر را تایپ میکنم ولی تغییرات فقط تا وقتی برنامه فعال ایجاد میشه و وقتی مجددا برنامه را فعال میکنم تغییرات قبلی من اعمال نشده؟
privatevoid insert_Click(object sender, EventArgs e)
{
SqlConnection con = null;
SqlCommand cmd = null;
try
{
con = newSqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["WinApp.Properties.Settings.Sales_coConnectionStrin g"].ConnectionString;
cmd = newSqlCommand();
cmd.Connection = con;
cmd.CommandText = string.Format("INSERT INTO Customers( FName, LName, CardNo ) VALUES ( '{0}', '{1}', '{2}') ", textBox2.Text, textBox3.Text, textBox4.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}

atryad
شنبه 21 شهریور 1388, 01:46 صبح
:عصبانی++:سلام من میخواستم بپرسم چطور تغییرات را به بانک اطلاعاتمون انتقال بدیم من این کد زیر را تایپ میکنم ولی تغییرات فقط تا وقتی برنامه فعال ایجاد میشه و وقتی مجددا برنامه را فعال میکنم تغییرات قبلی من اعمال نشده؟


ممکنه شما فایل بانک اطلاعاتی رو به پروژهadd کردی و هنگامی که پروژه ران میشه بانک به صورت پیش فرض "زمان اضافه شدن به پروژه" در میاد

majid1004
شنبه 21 شهریور 1388, 21:35 عصر
ممکنه شما فایل بانک اطلاعاتی رو به پروژهadd کردی و هنگامی که پروژه ران میشه بانک به صورت پیش فرض "زمان اضافه شدن به پروژه" در میاد
سلام احتمالا من مشکلم بد بیان کردم
من میخوام راهی را به من معرفی کنید که بتونم تغییرات داخل data set برنامم به data base اصلیم منتقل کنم
باز هم ممنون از اینکه به مشکلم توجه کردید

atryad
یک شنبه 22 شهریور 1388, 00:33 صبح
دوست عزیز سلام
اگه با SQl کار میکنی با دستور زیر اطلاعات مستقیما در دیتا بیس نوشته میشه و اگه با اکسس هست من زیاد با اکسس کار نکردم شرمنده


using System.Data.SqlClient;
publicstring path = "Data Source=PC_12;Initial Catalog=DBparking;Integrated Security=True";
string insert = "INSERT INTO fish" +
"([ID_khodro]" +
",[sh_fish]" +
",[t_fish]" +
",[variz_konande]" +
",[mab])" +
" VALUES('{0}','{1}','{2}','{3}','{4}')";
insert = String.Format(insert, label8.Text, textBox1.Text,
textBox9.Text + "/" + textBox8.Text + "/" + textBox7.Text,
textBox2.Text, maskedTextBox2.Text);
SqlConnection objcon = newSqlConnection(path);
SqlCommand objcom = newSqlCommand();
objcom.Connection = objcon;
objcom.CommandText = insert;

objcon.Open();
objcom.ExecuteNonQuery();
objcon.Close();


PC_12 اسم کامپیوتر Dbparking اسم دیتا بیس Fish اسم تیبل و اسمهای توی دستور سلکت رو با تیبل خود هماهنگ کن

majid1004
یک شنبه 22 شهریور 1388, 03:04 صبح
دوست عزیز سلام
اگه با SQl کار میکنی با دستور زیر اطلاعات مستقیما در دیتا بیس نوشته میشه و اگه با اکسس هست من زیاد با اکسس کار نکردم شرمنده


using System.Data.SqlClient;
publicstring path = "Data Source=PC_12;Initial Catalog=DBparking;Integrated Security=True";
string insert = "INSERT INTO fish" +
"([ID_khodro]" +
",[sh_fish]" +
",[t_fish]" +
",[variz_konande]" +
",[mab])" +
" VALUES('{0}','{1}','{2}','{3}','{4}')";
insert = String.Format(insert, label8.Text, textBox1.Text,
textBox9.Text + "/" + textBox8.Text + "/" + textBox7.Text,
textBox2.Text, maskedTextBox2.Text);
SqlConnection objcon = newSqlConnection(path);
SqlCommand objcom = newSqlCommand();
objcom.Connection = objcon;
objcom.CommandText = insert;

objcon.Open();
objcom.ExecuteNonQuery();
objcon.Close();


PC_12 اسم کامپیوتر Dbparking اسم دیتا بیس Fish اسم تیبل و اسمهای توی دستور سلکت رو با تیبل خود هماهنگ کن
سلام بازهم ممنون مشکل من فکر کنم همین بود از راهنماییتون ممنونم:قلب:

edennvl
یک شنبه 22 شهریور 1388, 13:17 عصر
ببخشید میشه بگین چطوری میشه چک کرد که تو# c بانک اطلاعاتی SQl(جدول مورد نظر) وجود داره یا نه؟
چون خودم حین اجرا جدولشو ایجادش میکنم دوباره که میاد می خوام خودش مسیج بده بگه جدول قبلا ایجاد شده

SMRAH1
یک شنبه 22 شهریور 1388, 13:58 عصر
سلام

آداپتور زیر نام کل پایگاه داده های موجود رو بر می گردونه:

SqlDataAdapter da = new SqlDataAdapter("sp_databases", strConnection);که در اون strConnection ، همان رشته اتصال به پایگاه داده و جدول Master است.
دستور زیر هم برای دریافت نام جداول پایگاه داده مورد نظر است:

SqlDataAdapter("Select * From INFORMATION_SCHEMA.TABLES", strConnection)که باز هم strConnection همان رشته اتصال به جدول مورد نظر است.

البته این کد ها برای SQLServer است.

موفق بشاید

alireza.m
یک شنبه 22 شهریور 1388, 15:27 عصر
سلام. میخواستم بدونم چه جوری میشه آدرس محلی به دیتابیس بدم تا تو هر کامپیوتری برنامه را اجرا کردم خطا نده؟ من با sql express کار می کنم.

edennvl
یک شنبه 22 شهریور 1388, 17:17 عصر
ببخشید باز مزاحم شدم
تو سوال قبلی بعد از اینکه Da اطلاعات رو گرفت اگه بخوام طوری باشه دیگه جدولی با اسم تکراری ایجادنشه چه شرطی واسه Da باید بزارم که خودش بفهمه و خطا بده
بابت قبلی ممنون

sara.f
یک شنبه 22 شهریور 1388, 17:27 عصر
ببخشید باز مزاحم شدم
تو سوال قبلی بعد از اینکه Da اطلاعات رو گرفت اگه بخوام طوری باشه دیگه جدولی با اسم تکراری ایجادنشه چه شرطی واسه Da باید بزارم که خودش بفهمه و خطا بده
بابت قبلی ممنون
من فکر می کنم باید کدها را توی try,catch بنویسی و در صورتی جدول با اسم تکراری بخوای ایجاد کنی خودش پیغام میده، البته مطمئن نیستم، امتحان کن.

edennvl
یک شنبه 22 شهریور 1388, 17:46 عصر
ببخشید میشه بیشتر راهنمایی کنید!

edennvl
یک شنبه 22 شهریور 1388, 17:53 عصر
دوست خوب قبلی (SMRAH1 (http://www.barnamenevis.org/forum/member.php?u=44567)) راهنمایی خوبی کردن ولی من مبتدی ام نمیدونم چطور متغیری رو باید به dataadapter نسبت بدم تا بتونم واسش شرط بزارم و ببینم اگه توش هست پیام بده

edennvl
یک شنبه 22 شهریور 1388, 18:05 عصر
بیشتر در مورد try,catch توضیح بدین؟

edennvl
یک شنبه 22 شهریور 1388, 18:28 عصر
دوست عزیز(sara.f (http://www.barnamenevis.org/forum/member.php?u=114872)) من جواب خودمو گرفتم از کمکتون ممنون

atryad
دوشنبه 23 شهریور 1388, 03:37 صبح
بیشتر در مورد try,catch توضیح بدین؟
سلام
دوست عزیزtry , catchبرای گیر انداختن errorاست و به این صورت اجرا میشه



try
{
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}


که در حالت عادی برنامه قسمت موجود در try رو اجرا میکند و اگه با خطایی در قسمت try
مواجه شد قسمت cath رو اجرا میکند و عبارد جلوی cath پیغام خطا رو توی ex میریزه و میتونه با یه پیام اونوبه کار بر نشون بده میتونی به جای پیغام دادن به کاربر یه سری کارای دیگه انجام بده
مثلا میتونی توی try دستور ساخت یه tabel توی databaseرو بدی خوب اگه این یه بار اجرا بشه درست است اما اگه همین دستور برای بار دوم هم اجرا بشه چون جدول قبلا درست شده و نمی تواند با همین نام جدول بسازد قانونن خطا میدهد که شما میتونین یه پیغام مناسب براش بزارین که مثلا جدول قبلا ساخته شده است و هزار کار دیگر
با تشکر

edennvl
دوشنبه 23 شهریور 1388, 09:15 صبح
از راهنمایتون ممنون

edennvl
دوشنبه 23 شهریور 1388, 10:53 صبح
اگه میشه بگین چگونگی ارتباط دو جدول با کد نویسی درC#‎ یعنی DATA RELATION رو چطوری مینویسن؟

edennvl
چهارشنبه 25 شهریور 1388, 12:53 عصر
سلام دوستان
من 2تا جدول دارم که تو هر کدوم چنتا محصوله میخوام تو 2تا combobox نشون بده که اولی نام جدول بیاد و وقتشی روش کلیک کردم تو دومی محصولاتش نشون داده بشه خودم یه کدی نوشتم bindingمیشه ولشی تو دومی نمی دونم چطور comboBox2 .DisplayMember رو بنویسم بعدشم وقتی دوبار روی comboBox1 می زنم
خطا bindig میده لطفا اگه میشه کمکم کنید

con.Open();

SqlDataAdapter Da = new SqlDataAdapter();
string str = "select IDS from Farm";
str += comboBox1.Text;
Da = new SqlDataAdapter(str, con);
DataSet Ds = new DataSet();
Da.Fill(Ds, "table");
comboBox2.DataBindings.Add("datasource", Ds, "table");
con.Close();]

edennvl
چهارشنبه 25 شهریور 1388, 12:57 عصر
سلام دوستان
من 2تا جدول دارم که تو هر کدوم چنتا محصوله میخوام تو 2تا combobox نشون بده که اولی نام جدول و وقتی روش کلیک کردم تو دومی محصولاتش نشون داده بشه خودم یه کدی نوشتم bindingمیشه ولی
تو دومی نمی دونم چطور comboBox2 .DisplayMember رو بنویسم
بعدشم وقتی دوبار روی comboBox1 می زنم
خطا bindig میده لطفا اگه میشه کمکم کنید


con.Open();
SqlDataAdapter Da = new SqlDataAdapter();
string str = "select IDS from Farm";
str += comboBox1.Text;
Da = new SqlDataAdapter(str, con);
DataSet Ds = new DataSet();
Da.Fill(Ds, "table");
comboBox2.DataBindings.Add("datasource", Ds, "table");
con.Close();