PDA

View Full Version : اتصال List Box به بانک



raha_20
سه شنبه 20 مرداد 1388, 11:33 صبح
من یه برنامه میخوام که یه لیست باکس داشته باشه و اطلاعات آن لیست باکس از یه جدول بانک اطلاعات استخراج بشه و بعد به مقادیر لیست دسترسی داشته باشم . خوب ارتباط میدم ولی وقتی از لیست مثلا اولین سطر را میخونم خوب به من مقدار مورد نظر را نمیده بلکه این مقدار را برمیگر دونه . System.data.rows.

اگه کسی یه برنامه داره واسه من بزاره . لطفا

حامد_رشنو
سه شنبه 20 مرداد 1388, 11:41 صبح
درود بر شما.
دوست عزيز جواب سوال شما اينه البته معادل دستور vb خودتون زحمت تبديلش به c# رو بكشيد




Dim con As SqlConnection
Dim adap As SqlDataAdapter
Dim ds As New DataSet()
Dim d As String
con = New SqlConnection("Initial Catalog=study;Data Source=Localhost;Integrated security=SSPI;")
d = "select * from tblstudent"
adap = New SqlDataAdapter(d, con)
adap.Fill(ds, "tblstudent")
listbox1.DataSource = ds.Tables("tblstudent")
ListBox1.DisplayMember=”نام فيلد مورد نظر براي نمايش”
con.Close()

raha_20
سه شنبه 20 مرداد 1388, 11:54 صبح
نه مشکل من این نیست . خوب الان ارتباط دادی . حالا من میخوام ببینم 10 مین مقدار از لیستم را بخونم چطوری این کار را انجام بدم.

sd.CSharpProgrammer
سه شنبه 20 مرداد 1388, 12:00 عصر
سلام


نه مشکل من این نیست . خوب الان ارتباط دادی . حالا من میخوام ببینم 10 مین مقدار از لیستم را بخونم چطوری این کار را انجام بدم.

خوب دوست عزيز بعد از اتصال و واكشي داده از جدول اصلي ترين راهش استفاده از كالكشن Items هست :

listBox1.Items[9]


در ادامه اش هم هر فيلد يا متدي كه ميخواي رو استفاده كن :لبخند:
فكر نكنم مشكل خاصي تو خوندن آيتم 10ام باشه!

حامد_رشنو
سه شنبه 20 مرداد 1388, 12:05 عصر
خوب بعنوان مثال ما ميخوايم ركورد دهممون رو توي يه تكست باكس نمايش بديم.
روي ليست باكسمون دابل كليك ميكنيم و توش مينويسيم:



TextBox1.Text = ListBox1.Text


حالا روي دهمين مقدار ليست باكس كليك مي كنيم.
اگه بازم مشكلت حل نشده فك كنم بايد بيشتر توضيح بدي كه منظورت چيه.

sd.CSharpProgrammer
سه شنبه 20 مرداد 1388, 12:31 عصر
دوستان چرا مساله رو اينقدر ميپيچونين و بيخودي سختش ميكنين؟!!!
اين برنامه رو دانلود كنين مشكلتون حل ميشه :

Reza.ariyan
سه شنبه 20 مرداد 1388, 12:44 عصر
شماره سطر انتخاب شده : ListboxName.SelectedIndex
مقدار متنی سطر انتخاب شده : ListboxName.SelectedItem

raha_20
سه شنبه 20 مرداد 1388, 13:23 عصر
private void textBox1_TextChanged(object sender, EventArgs e)
{

int lenntxt = textBox1.Text.Length;
int last = (listBox1.Items.Count)-1;
int j=0;
bool found=false;
while ((found =false) | (j<= last))

{

string comp;
comp=(listBox1.Items[j].ToString());
MessageBox.Show((string)comp);
comp=comp.Substring(0,lenntxt);
if (textBox1.Text==comp)
{
listBox1.SelectedIndex=j;
found=true;
}
j+=1;
}

if (!(found))
listBox1.SelectedIndex = -1;


}

raha_20
سه شنبه 20 مرداد 1388, 13:24 عصر
این کدی که من گذاشتم مشکلش اینه که تو message box به جای اینکه مقداری که از توی لیست میخونه رو نشون بده System.data.rows به من میده .

raha_20
سه شنبه 20 مرداد 1388, 13:41 عصر
این برنامه که گذاشتین هم error میده خواهشا یه دفه امتحان کنید ببینید شما هم این مشکل منو دارید یا نه .

raha_20
سه شنبه 20 مرداد 1388, 14:19 عصر
خواهشا دوستان اگه کسی میتونه در این مورد به من یه کمکی بده

لطفا

:گیج::افسرده:

Sociant
سه شنبه 20 مرداد 1388, 15:01 عصر
foreach (DataRowView item in listBox1.Items)
{
MessageBox.Show(item.Row.ItemArray[column_index].ToString());
}

بجای column_index شماره ستون مورد نظرت تو جدولی که به لیست باکس bind کردی بذار

mn_zandy63
سه شنبه 20 مرداد 1388, 15:15 عصر
به جای


comp=(listBox1.Items[j].ToString())

بنویس


comp=((DataRowView)listBox1.Items[j]).Row.ItemArray[COLUMNINDX].ToString()

به جای COLUMNINDX شماره ستونی از جدولت رو که به لیست بایند کردی و مقدارش رو میخواهی بذار.

naghshineh m&h
یک شنبه 20 فروردین 1391, 20:59 عصر
سلام من هم دقیقا ایم مشکل رو دارم listbox از اطلاعات بانک پر می شود ولی موقع نمایش آیتم انتخاب شده مقدار برگشتی System.data.rows است