PDA

View Full Version : آخرین رکورد حاوی دیتا



majidsoft
شنبه 29 آبان 1389, 09:31 صبح
با سلام
من vb.net 2008 و sql 2005 دارم در یکی از table ها می خواهم آخرین رکوردی را که حاوی دیتا هست را پیدا کنم من بعد از این رکورد رکوردهای دیگری دارم که حاوی null هستند ولی می خواهم آخری که دارای مقدار است را پیدا کنم و یکی از فیلدهای آن را در برنامه استفاده کنم چون حجم رکوردها رو به افزایش است نمی خوام از حلقه استفاده کنم
با تشکر

yekta64
شنبه 29 آبان 1389, 09:42 صبح
با سلام
من vb.net 2008 و sql 2005 دارم در یکی از table ها می خواهم آخرین رکوردی را که حاوی دیتا هست را پیدا کنم من بعد از این رکورد رکوردهای دیگری دارم که حاوی null هستند ولی می خواهم آخری که دارای مقدار است را پیدا کنم و یکی از فیلدهای آن را در برنامه استفاده کنم چون حجم رکوردها رو به افزایش است نمی خوام از حلقه استفاده کنم
با تشکر


سلام دوست عزیز

ما فرض رو بر این می ذاریم که جدول شما یه فیلد خودکار به اسم id داره و یه فیلد دیگه به اسم name

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



select Max(id) from tblname where name is not null


این کوری میره اخرین رکوردی که این مقدارش null نیست رو برمیگردونه

موفق باشید

majidsoft
شنبه 29 آبان 1389, 15:10 عصر
با سلام
من اینجوری از کد شما استفاده کردم ولی جواب نداد
با تشکر

Dim cmd11 As New SqlCommand("select * from mill ", Cnn)
cmd11.CommandText = "select Max(count) from mill where sca is not null"
Cnn.Open()
cmd11.ExecuteNonQuery()
Cnn.Close()
Dim dr11 As SqlDataReader
Cnn.Open()
dr11 = cmd11.ExecuteReader
While (dr11.Read())
txtprscale.Text = dr11("count")
End While
Cnn.Close()

yekta64
شنبه 29 آبان 1389, 18:35 عصر
با سلام
من اینجوری از کد شما استفاده کردم ولی جواب نداد
با تشکر

Dim cmd11 As New SqlCommand("select * from mill ", Cnn)
cmd11.CommandText = "select Max(count) from mill where sca is not null"
Cnn.Open()
cmd11.ExecuteNonQuery()
Cnn.Close()
Dim dr11 As SqlDataReader
Cnn.Open()
dr11 = cmd11.ExecuteReader
While (dr11.Read())
txtprscale.Text = dr11("count")
End While
Cnn.Close()


دوست من count(*) به این معنا هستش که خروجی کوری شما یه فیلد هستش پس باید executscaler استفاده کنید.

اگه بازم مشکلی بود مطرح کنید.

majidsoft
شنبه 29 آبان 1389, 22:28 عصر
با سلام از executescaler استفاده کردم ولی باز ایراد گرفت کد رو وقتی توی sql می زنم جوب می ده ولی توی برنامه ایراد می گیره اگه لطف کنی کد رو برات دوباره می فرستم برام اصلاحش کن
من توی تاپیک اول گفتم می خوام مقدار یک فیلد رو به نام count برگردونم
با تشکر

''''scale
Dim cmd11 As New SqlCommand("select * from mill ", Cnn)
cmd11.CommandText = "select max(count) from mill where sca is not null"
Cnn.Open()
cmd11.ExecuteNonQuery()
Cnn.Close()
Dim dr11 As SqlDataReader
Cnn.Open()
dr11 = cmd11.ExecuteReader
While (dr11.Read())
txtprscale.Text = dr11("count")
End While
Cnn.Close()

yekta64
یک شنبه 30 آبان 1389, 09:08 صبح
با سلام از executescaler استفاده کردم ولی باز ایراد گرفت کد رو وقتی توی sql می زنم جوب می ده ولی توی برنامه ایراد می گیره اگه لطف کنی کد رو برات دوباره می فرستم برام اصلاحش کن
من توی تاپیک اول گفتم می خوام مقدار یک فیلد رو به نام count برگردونم
با تشکر

''''scale
Dim cmd11 As New SqlCommand("select * from mill ", Cnn)
cmd11.CommandText = "select max(count) from mill where sca is not null"
Cnn.Open()
cmd11.ExecuteNonQuery()
Cnn.Close()
Dim dr11 As SqlDataReader
Cnn.Open()
dr11 = cmd11.ExecuteReader
While (dr11.Read())
txtprscale.Text = dr11("count")
End While
Cnn.Close()


سلام
دوست من شما می خواید تعداد رکوردهای که پر هستن رو بر گردونید دیگه درسته؟؟؟

خوب پس باید حاصل کوری شما یه count از رکوردهای باشه که خالی نیستن کدتون به این صورت تغییر بدید درست میشه



Dim cmd11 As New SqlCommand
Dim result As Integer
Dim str As String
OpenConnection()
str = "select Count(ID) from mill where sca is not null "
cmd11 = New OleDbCommand(str, Con)
txtprscale.Text = cmd11.ExecuteScalar()
Con.Close()


بازم اگه مشکلی بود در خدمت هستم

موفق باشید.

majidsoft
یک شنبه 30 آبان 1389, 22:16 عصر
ممنون
این من از کد شما استفاده کردم ولی این کد درست نبود درست شدشو بعد همینجا می زارم
با تشکر

yekta64
دوشنبه 01 آذر 1389, 09:34 صبح
ممنون
این من از کد شما استفاده کردم ولی این کد درست نبود درست شدشو بعد همینجا می زارم
با تشکر


دوست عزیز من این کد رو چک کردم مشکلی نداره دقیقا تعداد رکودهای پر جدول رو برمی گردونه

میشه شما بگید مشکل چی هستش

اگه بتونم راهنمایی می کنم
موفق باشید.

majidsoft
دوشنبه 01 آذر 1389, 15:48 عصر
با سلام
من تعداد را نمی خواستم ، آخرین رکورد را که null نباشد را می خواستم
به هر حال از کد شما استفاده کردم و درست شد
با تشکر

yekta64
سه شنبه 02 آذر 1389, 10:19 صبح
با سلام
من تعداد را نمی خواستم ، آخرین رکورد را که null نباشد را می خواستم
به هر حال از کد شما استفاده کردم و درست شد
با تشکر

خواهش می کنم
تنها تغییری که باید می دادید این بود که در کوری به جای count(ID) باید Max(id) می نوشتید

موفق باشید.