PDA

View Full Version : حرکت از یک ردیف به ردیف بعد



miassus10
چهارشنبه 08 شهریور 1385, 06:42 صبح
با تشکر از دوست عزیز (آرژنگ)
من داخل فروم جستجو کردم و دوستی طریقه ارتباط با بانک اکسس از طریق datarow را داده بودند. حالا چه جوری میشه مشابه دستورات vb6 که با movenext به ردیف بعد حرکت کرد و معادل دستور bof , eof در datarow چیه؟

اَرژنگ
چهارشنبه 08 شهریور 1385, 07:50 صبح
http://msdn2.microsoft.com/en-us/library/kcs3hdk5.aspx

miassus10
چهارشنبه 08 شهریور 1385, 10:27 صبح
راستش من اونجا رفتم ولی خیلی متوجه نشدم، میشه فارسی توضیح بدین؟

miassus10
چهارشنبه 08 شهریور 1385, 14:18 عصر
در ضمن من با هزار بدبختی دنبال یک کد برای شمردن تعداد سطرهای جداولم گشتم. ولی نمیدونم چرا هر کاری میکنم توی جدول اولم تعداد ردیفها را 2 برابر نشون میده ولی برای جداول دیگر اینطور نیست؟(x را بجای 9 مینویسه 18)؟؟؟؟؟؟؟؟؟؟؟؟؟؟
دلیل چیه؟
چرا این VB.net اینجوریه؟

Dim x AsInteger = 0
ForEach newrow In ds.Tables("table1").Rows
x = x + 1
Label1.Text = newrow.Item("point")
Next

اَرژنگ
چهارشنبه 08 شهریور 1385, 14:37 عصر
راستش من اونجا رفتم ولی خیلی متوجه نشدم، میشه فارسی توضیح بدین؟
معمولاً DataRows در یک DataTableهستند، با بدست یافتن به DataTable.Rows properyو استفاده از foreach میشه لوپشان کرد.
مثلاً این کد یکی تا آخرین اسمها را مینویسه.


For Each row In MyTable.Rows
Console.Write( row["Name"].ToString())
Next


اگر این توضیح خوب نیست، با کد کار کنید، راحته.
من وی‌بی کار نیستم، راستش.
بیشتر با سی‌شارپ کار میکنم.

RezaJP
چهارشنبه 08 شهریور 1385, 15:07 عصر
در ضمن من با هزار بدبختی دنبال یک کد برای شمردن تعداد سطرهای جداولم گشتم. ولی نمیدونم چرا هر کاری میکنم توی جدول اولم تعداد ردیفها را 2 برابر نشون میده ولی برای جداول دیگر اینطور نیست؟(x را بجای 9 مینویسه 18)؟؟؟؟؟؟؟؟؟؟؟؟؟؟
دلیل چیه؟
چرا این VB.net اینجوریه؟
Dim x As Integer = 0
For Each newrow In ds.Tables("table1").Rows
x = x + 1
Label1.Text = newrow.Item("point")
Next


نیازی به این کارا نیست که:متفکر:
کافیه از این استفاده کنی

ds.Tables("table1").Rows.Count

هادی123
چهارشنبه 08 شهریور 1385, 17:42 عصر
نمایش رکورد فعلی

Label1.Text = ((Me.BindingContext(ds, "tabel1").Position + 1).ToString + "of") & Me.BindingContext(ds, "tabel1").Count.ToString


رفتن به رکورد بعدی

Me.BindingContext(ds, "tabel1").Position = (Me.BindingContext(ds, "tabel1").Position + 1)
Label1.Text = ((Me.BindingContext(ds, "tabel1").Position + 1).ToString + "of") & Me.BindingContext(ds, "tabel1r").Count.ToString


رفتن به رکورد قبلی
Me.BindingContext(ds, "tabel1").Position = (Me.BindingContext(ds, "tabel1").Position - 1)
Label1.Text = ((Me.BindingContext(ds, "tabel1").Position + 1).ToString + "of") & Me.BindingContext(ds, "tabel1").Count.ToString

miassus10
پنج شنبه 09 شهریور 1385, 06:35 صبح
یعنی معادل دستورات movenext دستورهای بالاست؟
من چرا وقتی یک برنامه نوشته شده با vb6 توسط recordset و آن را در vb.net آپگرید کردم و البته تمام error ها را رفع کردم، فایل setup روی کامپیوتر خودم کار کرد، ولی روی کامپیوتر دیگه کار نکرد(البته تمام prerequisite ها رو نصب کردم.)برنامه اجرا شد ولی به محض برقراری ارتباط با بانک error داد؟؟؟؟؟؟

miassus10
پنج شنبه 09 شهریور 1385, 07:00 صبح
در ضمن من اون دستور ds.tables("table1").rows.count که REZAJP زحمتشو کشیده بود نوشتم ولی متاسفانه بازهم فقط وفقط روی همون table1 تعداد ردیفها رو 2 برابر نشون میده ولی رو بقیه table ها درست نشون میده، چرا؟

اَرژنگ
پنج شنبه 09 شهریور 1385, 07:56 صبح
در ضمن من اون دستور ds.tables("table1").rows.count که REZAJP زحمتشو کشیده بود نوشتم ولی متاسفانه بازهم فقط وفقط روی همون table1 تعداد ردیفها رو 2 برابر نشون میده ولی رو بقیه table ها درست نشون میده، چرا؟
این اکسس داتابیستان را اینجا ضمیمه کنید ما هم امتحان کنیم..

miassus10
پنج شنبه 09 شهریور 1385, 09:23 صبح
چه جوری میشه یک فایل فرستاد؟

اَرژنگ
پنج شنبه 09 شهریور 1385, 10:13 صبح
چه جوری میشه یک فایل فرستاد؟
نقله قول -> مدیریت پیوستها
فایل را یا زیپ کنید، یا اینکه به آخره اسمش zip.اضافه کنید.

miassus10
پنج شنبه 09 شهریور 1385, 11:18 صبح
آرژنگ عزیز بالاخره فهمیدم چه اشتباهی کردم، در دوجای مختلف برنامه دیتاستو دوبار پرکردم!!!
دیگه تا بیام به نسخه جدید vb عادت کنم طول میکشه
حالا یه مشکلی که من توی vb 6 هم داشتم این بود که وقتی رو فایل اکسسم پسورد میذاشتم نمیتونستم از طریق کد نویسی بازش کنم
strcon = "provider=microsoft.jet.oledb.4.0;" & "data source=" & Application.StartupPath & "\db1.mdb;" & "pass=anfo"
strsql = "select * from table1"
con = New OleDbConnection(strcon)
con.Open()
الانم که این دستورو وارد کردم روی خط con.open خطا میگیره و مینویسه could not find installable ISAM ، چرا اینجوری میشه؟

RezaJP
پنج شنبه 09 شهریور 1385, 13:20 عصر
در ضمن من اون دستور ds.tables("table1").rows.count که REZAJP زحمتشو کشیده بود نوشتم ولی متاسفانه بازهم فقط وفقط روی همون table1 تعداد ردیفها رو 2 برابر نشون میده ولی رو بقیه table ها درست نشون میده، چرا؟
ممکنه شما دارید دو بار تیبل رو Fill می کنید
به نظر من هم کدتون و دیتابیستون رو ضمیمه کنید

miassus10
پنج شنبه 09 شهریور 1385, 14:23 عصر
آره منم خودم بالاخره متوجه شدم که مشکل از دوبار پر شدن بوده
در ضمن من وقتی می خوام پروژه setup اضافه کنم، بعدکه می خوام primary output اضافه کنم این پیغامهارو میده
آیا باید reference خاصی رو add کنم؟
the following file may have dependencies that cannot be determined automatically.
please confirm that all dependencies have been added to this project.
c:\program.................\ado\msado15.dll
c:\program.................\ado\msadomd.dll
c:\program.................\ado\msador15.dll
c:\program.................\ado\msadox.dll

miassus10
جمعه 10 شهریور 1385, 08:11 صبح
آقا کسی جواب مارو نمیده؟

اَرژنگ
جمعه 10 شهریور 1385, 08:45 صبح
آقا کسی جواب مارو نمیده؟
مشکل چیه؟ من نمیتونم بحث را تعقیب کنم، فکر کردم سوال جواب داده شد.
دثباره پر شدن جدول مشکل ایجاد میکرد، خیر؟
اگر ممکنه برایه سوالات مختلف توپیکهایه جداگانه بزنید.
ولی بگید که مشکل اصلی چی هست (در یک توپیک جدید).