PDA

View Full Version : سوال: استخراج داده های متنی یک ستون جدول و نمایش آن در یک تسکت باکس



ali_isp
دوشنبه 03 اردیبهشت 1403, 18:05 عصر
سلام و عرض ادب
جدولی دارم که یکی از ستون هاش حاوی داده های متنی هست. میخوام با سلکت روی این ستون کل داده هاش استخراج بشه و با کاما جدا بشه و در قالب یک رشته در تکست باکس نمایش داده بشه.
لطفا راهنمایی کنید.
ممنونم

mazoolagh
دوشنبه 03 اردیبهشت 1403, 19:09 عصر
سلام و روز خوش
پرسش شما گنگ هست!

1- منظور از جدول:
یک table در database هست،
یا یک datatable،
یا یک گرید (به طور کلی).

2- منظور از "کل داده ها" چی هست؟
همه مقادیر یک فیلد جدول (یا ستون گرید)؟
یا مقدار همون یک فیلد از یک رکورد معین (یا یک سلول گرید)؟

اول این ها رو مشخص کنین،
بعد دیتا نمونه همراه با خروجی مورد نظر پیوست کنین (اسکرین شات یا متنی فرمت شده).

ali_isp
دوشنبه 03 اردیبهشت 1403, 19:59 عصر
سلام مجدد
داده های ستون مشخص رو بصورت دیتا تیبل سلکت کردم
Private Sub Load_Bank8()
Dim con7 As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & My.Application.Info.DirectoryPath & "\DB1.accdb")
con7.Open()
Dim da7 As New OleDbDataAdapter("SELECT m_hesab from tb_bedehkar", con7)
Dim dt7 As New DataTable()
da2.Fill(dt7)
con7.Close()


'RichTextBox1.Text = "بابت" + " " + ds7.Tables(0).Rows(i7)("m_hesab").ToString()


'RichTextBox1.Text = "بابت" + " " + ds7.Tables(0).Rows(0)("m_hesab").ToString() + " " + "و" + " " + ds7.Tables(0).Rows(1)("m_hesab").ToString() + " " + "و" + " " + ds7.Tables(0).Rows(2)("m_hesab").ToString() + " " + "و" + " " + ds7.Tables(0).Rows(3)("m_hesab").ToString() + " " + "و" + " " + ds7.Tables(0).Rows(4)("m_hesab").ToString()
End Sub

ali_isp
دوشنبه 03 اردیبهشت 1403, 20:00 عصر
اون دو خط آخر رو به این صورت بفکرم رسید انجام بدم ولی خب داده ها و سطرها متغیر هستن و حتما به خطا بر میخورم

ali_isp
دوشنبه 03 اردیبهشت 1403, 20:07 عصر
155645
اینم اسکرین شات کد

mazoolagh
سه شنبه 04 اردیبهشت 1403, 16:48 عصر
الان خواسته شما کاملا مشخص هست:
dim constr as string="Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source=" & My.Application.Info.DirectoryPath & "\DB1.accdb"
Dim dt7 As New DataTable()
using con7 As New OleDb.OleDbConnection(constr)
con7.Open()
using da7 As New OleDb.OleDbDataAdapter("SELECT m_hesab from tb_bedehkar" , con7)
da7.Fill(dt7)
end using
con7.Close()
end using


dim mhesab as list(of string) = dt7.asenumerable().select(function(row) row.field(of string)("m_hesab")).tolist
RichTextBox1.Text = " بابت" + String.Join(" و ", mhesab)

چند مورد هم هست که بهتره در نظر داشته باشین:
1- برای چیزهایی مثل connection , command , dataadapter , datareader و ... بهتره از using استفاده کنین
که روش رو در کد ویرایش شده خودتون میبینین.

2- اینجا با استفاده از linq کل ستون m_hesab رو به یک لیست از استرینگ تبدیل کردیم و بعد این لیست رو با " و " به هم چسبوندیم (join).
این رو میشه در یک حلقه هم پیاده کرد:
dim mhesab as new list(of string)
for each row as datarow in dt7.rows
mehesab.add(row("m_hesab"))
next
RichTextBox1.Text = " بابت" + String.Join(" و ", mhesab)

3- اگر دیتا شما readonly هست،
میتونین همون زمان خوندن دیتا از دیتابیس، برای هر ستون مقدار عبارت رو هم محاسبه کنین.
در این صورت بهتره از datareader استفاده کنین.
=========
برای گذاشتن کدها در پست از تگ مناسب اون استفاده کنین (اینجا تگ VB).
اسکرین شات برای کد گذشته از ای که برای کدهای طولانی باعث ناخوانایی میشه،
در جستجو هم دیده نمیشه.

ali_isp
سه شنبه 04 اردیبهشت 1403, 19:56 عصر
سلام و سپاس از راهنمایی تون
به خوبی مشکل منو حل کردین.
و همچنین تکشر بابت ارائه روش کدنویسی