PDA

View Full Version : ایجاد حلقه



pedram_ns
پنج شنبه 20 آبان 1389, 11:42 صبح
سلام
من ابتدا یکسری اطلاعات رو از دیتابیس می خونم(جستجو) و به یک گرید نسبت می دم.
بعد با دستور read ای دی موارد یافت شده رو می خونم ولی فقط اولین id رو بر می گردونه حلقه رو باید چطور ایجاد کنم تا تمامی id ها رو بدست بیارم؟


// رشته اتصال
// خوندن از دیتابیس و ذخیره در گریدویو

Dim reader As OleDbDataReader
reader = cmd.ExecuteReader()
reader.Read()
Dim id As String = reader("id").ToString()
reader.Close()

leila_mahyanet
پنج شنبه 20 آبان 1389, 13:00 عصر
برای اینکه چندین رکورد رو دریافت کنی می تونی از dataAdapter استفاده کنی و یک dataSet رو باهاش پر کنی . ولی اگر میخوای حتما از dataReader استفاده کنی باید متغیری که خروجی رو در اون میریزی (که اینجا id هست) ، از نوع آرایه یا لیست باشه.
چطور میخوای در بالا فرضا 5تا id رو تو یه متغیر بریزی؟

اگر هم میخوای باهاش یه گرید ویو رو پر کنی . باید dataSource اون گرید رو مساوی با reader قرار بدی:


Dim reader As OleDbDataReader
reader = cmd.ExecuteReader()
GridView1.DataSource=reader

GridView1.DataBind()

pedram_ns
شنبه 22 آبان 1389, 10:08 صبح
من بصورت یک ارایه می خوام بنویسم اینطوری درسته؟


Dim arr As New ArrayList()

reader = cmd.ExecuteReader()
reader.Read()

arr.Add(reader("id"))

من ابتدا با جستجو کاربر یکسری اطلاعات به همراه id اون ها رو می گیرم و دوباره بر اساس id یک جستجوی دیگه انجام می دم و می خوام اگر چند id پیدا شد بر اساس هر کدوم از id ها نتایج بعدی یافت بشه.
برای امتحان این رو چطور در یک listbox نشون بدم که مطمئن بشم درست کار می کنه؟

L_eskandary
شنبه 22 آبان 1389, 12:45 عصر
سلام دوست عزیز
خوب دلیل اینکه فقط یک id رو برمی گردونه واضح هستش . شما برا اینکه همه dataReader‌رو بخونین باید اون رو داخل یه حلقه قرار بدین به صورت زیر :


while(reader.read())
{array.add(reader("id"))}