PDA

View Full Version : انطباق فیلدی از جدول به ComboBox (فقط با کد نویسیVB)



clupcd
شنبه 27 آبان 1391, 18:47 عصر
با سلام برای انطباق combobox به sql server مثل انطباق textbox , datagridwive عمل کردم :

con = New SqlConnection(strCon)
con.Open()
strSql = "Select Name from TblKhanevade"
da = New SqlDataAdapter(strSql, con)
da.Fill(ds, "tblKhanevade")
ComboName.DataBindings.Add(New Binding("DataSource", ds, "tblKhanevade"))
con.Close()
اما گزینه ها رو به صورت زیر نمایش میده :
95129

همانطور که میبینید به جای اطلاعات در رکورد name این کد ها را نمایش میدهد
پیشاپیش از راهنماییتون سپاس گذارم

mhq1368
شنبه 27 آبان 1391, 19:03 عصر
سلام
ببینید شما باید کد زیر رو بنویسید




con.Open()
da = New SqlDataAdapter("select * from tbl1", con)
da.Fill(ds, "tbl1")
ComboBox1.DataSource = ds.Tables("tbl1")
ComboBox1.DisplayMember = "name"
ComboBox1.ValueMember = "name"

clupcd
شنبه 27 آبان 1391, 19:28 عصر
ممنون از لطفتون درست شد ولی مخوام بدونم با دستور binding چطوری میشه وصل کرد اگه اینم بگید بهتره

clupcd
شنبه 27 آبان 1391, 19:42 عصر
اگر انطباق کنترل datetimepicker رو هم بلدین بگین لطفا

mhq1368
شنبه 27 آبان 1391, 19:57 عصر
خواهش میکنم

من این دوتا کار نکردم نمیدونم

clupcd
شنبه 27 آبان 1391, 20:35 عصر
حالا یه سوال دیگه مخوام بگم اگر این فیلد true بود سطر رو در datagridwive قرمز و اگر false بود ان سطر رو سبز کند (فیلد از نوع بیت)

mhq1368
شنبه 27 آبان 1391, 21:09 عصر
یه همچین کدی باید بنویسید


con.Open()

da = New SqlDataAdapter("select * from tbl1", con)
da.Fill(ds, "tbl1")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "tbl1"
DataGridView1.Columns("id").HeaderText = "ردیف"
DataGridView1.Columns("name").HeaderText = "نام "
DataGridView1.Columns("state").HeaderText = "وضعیت"
i = BindingContext(ds, "tbl1").Position
If ds.Tables("tbl1").Rows(i).Item("state") = False Then
DataGridView1.AlternatingRowsDefaultCellStyle.Sele ctionBackColor = Color.Red

Else
DataGridView1.AlternatingRowsDefaultCellStyle.Back Color = Color.Green

End If

clupcd
یک شنبه 28 آبان 1391, 09:29 صبح
یه همچین کدی باید بنویسید


con.Open()

da = New SqlDataAdapter("select * from tbl1", con)
da.Fill(ds, "tbl1")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "tbl1"
DataGridView1.Columns("id").HeaderText = "ردیف"
DataGridView1.Columns("name").HeaderText = "نام "
DataGridView1.Columns("state").HeaderText = "وضعیت"
i = BindingContext(ds, "tbl1").Position
If ds.Tables("tbl1").Rows(i).Item("state") = False Then
DataGridView1.AlternatingRowsDefaultCellStyle.Sele ctionBackColor = Color.Red

Else
DataGridView1.AlternatingRowsDefaultCellStyle.Back Color = Color.Green

End If

دوست عزیز نه هدرتکست عوض شد
از if هم ارور گرفت

mhq1368
یک شنبه 28 آبان 1391, 09:40 صبح
دوست عزیز نه هدرتکست عوض شد
از if هم ارور گرفت


ببینید شما براساس پروژتون باید if و headertext رو تغییر بدین

clupcd
یک شنبه 28 آبان 1391, 09:48 صبح
میدونم چی میگین انجام دادم
شما آی دی یاهو دارین؟ یا گوگل تالک ؟ چندتا خورده سوال هم دارم ممنون میشم

clupcd
یک شنبه 28 آبان 1391, 10:33 صبح
الان مشکل عمده من در ds.clear و ds.update
انی کنترل هاست مثلا همین کنترل combobox وقتی یک آیتم توسط برنامه بش اضاف میشه در sql با این که ds رو clear میکنم و دوباره با fill پر میکنم ولی باید فرم بسته بشه و دوباره باز بشه تا گزینه ها بیادش
همینطور با همون فرم محتویات datagrid رو پر میکنم که تو فرم اصلی برنامس اما باید برنامه رو بست تا گذینه اضافه شده نمایان شود . ولی من میخوام تا به sql اضافه شد در کنترل نمایان شود
در مثلالی در کتاب نوشته :
ds.clear
da.fill(ds,"tbl1")
con.close()

عین اون برنامه رو نوشتم جواب داد
اما در پروژه خودم جواب نمیده

mhq1368
یک شنبه 28 آبان 1391, 10:45 صبح
من خودم هم که تازه کار بودم همین شوال رو داشتم ولی انقدر گشتم وکار کردم که بالاخره کد زیر رو پیدا کردم والان دارم ازش استفاده میکنم



try
{
ds.Clear();
com = new SqlCommand("Insert Into regkarmand values('" + TextBox2.Text + "','" + TextBox3.Text + "')", con);

com.ExecuteNonQuery();
da = new SqlDataAdapter("select * from regkarmand", con);
da.Fill(ds, "regkarmand");
da.Update(ds, "regkarmand");
con.Close();
num = int.Parse(TextBox1.Text);
TextBox1.Text = Convert.ToString(num + 1);
cl();
}
catch (SystemException)
{
MessageBox.Show("اطلاعاتی با این کد کارمند قبلا در جدول ذخیره شده است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Focus();
}


از خط 6(بدون احتساب خط خالی ) تا خط 9 کدی است که شما براساس پروژتون باید بنویسید

clupcd
یک شنبه 28 آبان 1391, 11:09 صبح
این که c# هستش

mhq1368
یک شنبه 28 آبان 1391, 11:57 صبح
آخ شرمنده حواسم نبود

ببینید شما خط 6 تا 9 رو فقط ; رو بردارید بقیه ی خط 6 تا 9 درست همونیه که هست


da = new SqlDataAdapter("select * from regkarmand", con)
da.Fill(ds, "regkarmand")
da.Update(ds, "regkarmand")

clupcd
دوشنبه 29 آبان 1391, 22:01 عصر
مشکل حل شد باید اینگونه مینوشتم کد رو
form1.ds.clear()
form1.da.fill(form1.ds,"tbl1")
form1.con.close()