PDA

View Full Version : سوال: ارتباط دادن یک بانک Sql و ComboBox



arash ghafori
دوشنبه 18 اردیبهشت 1391, 19:49 عصر
با سلام .
من روی فرمم یه دکمه ی Add دارم و یه ComboBox که با بانک sql ارتباط داره.
وقتی Add رو میزنم ، مقدار ComboBox به بانکم اضافه میشه .

مشکلم اینه که نمیدونم چه کدی بنویسم تا مقدار ComboBox علاوه بر اضافه شدن به بانکم ، به لیست ComboBox هم اضافه بشه . ینی نمیدونم چه جوری مقدار بانکم رو به لیست ComboBox اضافه کنم .

اگه میشه راهنماییم کنید . ممنون .

Mahmoud.Afrad
دوشنبه 18 اردیبهشت 1391, 22:11 عصر
بعد از هر بار اینزرت به دیتابیس یک بار باید از بانک سلکت کنید و دیتاسورس کمبو رو مقداردهی کنید.

مثال:


try
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tbl_city", con);
dt_city.Clear();
cmb_city.DataSource = dt_city;
cmb_city.ValueMember = "code_city";
cmb_city.DisplayMember = "city_name";

}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}

arash ghafori
دوشنبه 18 اردیبهشت 1391, 22:29 عصر
تشکر . اگه میشه بگید توی خط 8 dt_city چیه ؟

arash ghafori
دوشنبه 18 اردیبهشت 1391, 23:05 عصر
ببخشید طبق عکس ، الان مشکل کار من چیه که از کد اشکال میگیره :
86800

Mahmoud.Afrad
دوشنبه 18 اردیبهشت 1391, 23:57 عصر
کار شما اشتباهه. شما نباید از نام دیتابیس استفاده کنید که. شما یک دیتاتیبل داخل کلاس فرم تعریف کنید


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

DataTable dt_city = new DataTable();
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|datadirector y|\dbname.mdf;Integrated Security=True;Connect Timeout=30");



در لود فرم و همچنین بعد از هر بار که اینزرت به دیتابیس انجام شد باید مقادیر آیتمهای کمبو رو از دیتابیس بدست بیارید. نتیجه سلکت رو در دیتاتیبل قرار داده و اون رو به کمبو متصل میکنیم:


SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tbl_city", con);
dt_city.Clear();
cmb_city.DataSource = dt_city;
cmb_city.ValueMember = "code_city";
cmb_city.DisplayMember = "city_name";


در خط های بالا دیتاتیبل رو خالی و دوباره پر میکنیم .