• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

كسي هست بدونه اين query پر كاربرد چي ميشه

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
با سلام و خسته نباشيد
من يه query ميخواستم كه اين كارو برام انجام بده
query1.jpg

در واقع مي خوام يه ستون جديد Identity يه نام مثلا ID بهش اضافه بشه
اگه كمكم كنيد واقعا ممنون ميشم چون واقعا كارم گيره
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
41
محل سکونت
نصف جهان
با کرسر ها این کار امکان پذیره ولی بسیار دردسر داره !
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
دقیقا بگو میخوای چیکار کنی با بهت بگم چطوری این کار رو بکنی !
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
فکر کنم منظورشو من فهمیدم
فرض کن اون تیبل بالایی رو داریم
حالا میخواد بخونتش میخواد غیر از اون ستون های خود تیبل یه ستون بندازه اولش که حکم ردیف رو داشته باشه.
ینی این ستون جزو تیبل ما نیست میخواد موقع خوندن اضافه بشه
ردیف 1 اطلاعات سطر 1 ردیف 2 اطلاعات سطر 2 و به همین ترتیب
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
درسته همين كه گفتينو ميخوام
و اين ستون هم چيزه عجيبي نيست يه ستونه كه خودش با هر سطر اضافه مي شه
توي sql server بهشIdentity و توي access هم auto number گفته ميشه
ممنون كه وقت ميزارين
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
خدمت آقاي H_R يكي از كاربرد هاش ميشه اين باشه كه مثلا فرض كنيد يه table داريم كه ....10000 (الا ماشااله صفر) سطر داره من ميخوام توي صفحه اول سايت 4 تا از اولين سطر ها نشون داده بشه
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
خدمت آقاي H_R يكي از كاربرد هاش ميشه اين باشه كه مثلا فرض كنيد يه table داريم كه 100000 سطر داره من ميخوام توي صفحه اول سايت 4 تا از اولين سطر ها نشون داده بشه
البته واسه نشون دادن چهار تای بالایی نیازی به این کار نیست
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
خب شما هر چند تای بالا رو که بخوای میتونی با top n بدست بیاری
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
خب شما هر چند تای بالا رو که بخوای میتونی با top n بدست بیاری
کد:
ُSelect Top n *  from users
بجای n هر عددی که میخوای بزار اینجا 4 بزار
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
خوب حالا اگه مثلا از سطر 10 تا 20 رو خواستم چي؟
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
ها ای که گفتی یعنی چه؟:D
واسه اینکار باید همون ردیف آیدی هارو داشته باشی
بجای اینکه بیاد و یه ستون درست کنی که بعدا برات آیدی بندازه
برو توی دیزاین تیبل یه فیلد دیگه دست کن به اسم آی دی یا هر چی که دوست داری تایپشو اینت بزار بعد اوتو نامبرش کن
هر چند تا رکورد باشه خودش برات از اول شماره هارو ردیف میکنه
دیگه لازم به کار دیگه ای هم نیست
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
:) خوب اينو كه ميدونستم منظورم از طرح اين سوال اين بود كه اگه مثلا از يه table با مثلا 100000 سطر 100 تاشو انتخاب كرده باشي (مثلا با where ) از سطر 10 تا 20 رو برات نشون بده
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
خب اینی که گفتی خیلی فرق داره
نمیدونم از این کارت چه منظوری داری 2 حالت داره
اگه بخوای هر 100 تارو نشون بدی ولی تو صفحه های مختلف ینی تو 100 تارو گرفتی نمیخوای همه توی یک صفحه باشن و میخوای 10 تا 10 تا نشون بده مشکلت با paging حل میشه
ولی اگه بخوای دقیقا 10 تا 20 رو نشون بده یه ذره سخت تره . این قسمت رو خودم دنبالشم اتفاقا چون نتایج از سرچ هست و آیدی هایی که میاد پشت سر هم نیست نمیشه گفت 10 تا 20 رو نشون بده یا باید بتونیم توی اون 10 تای اولی بزرگترین آیدی رو بدست بیاریم که من نتونستم کسی هم نتونست کمک کنه ینی max و top n رو میخوام یا همینی که شما گفتی
بعد از استخراج شماره گذاری بشه
اگه با قسمت اول کارت راه نمیوفته باید وایسیم یه وارد تر بیاد
ببخشید اگه من هی راهای مختلفی از اول گفتم چون شما دقیقا سرایط رو نگفتی
منم دنبال مطلب میگردم الانم توی فوروم های خارجی میپرسم ببینم چی میشه
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
نه آقا دستت درد نكنه همين كه گفتينم خيلي به درد مي خوره
حالا هي داره مسئله جديد مطرح ميشه . خوب براي paging بايد چيكار كرد
شايد يه موقع به دردم بخوره
ممنون كه وقت ميزارين
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
خواهش میکنم
paging یکی از ویژگی های datagrid هستش
2 نوع paging داریم.
یکی اوتوماتیک یکی کاستوم
واسه اوتوماتیک اول میری به تو کد htlm یا توی دیزاین از قسمت پراپرتیز دیتاگرید خصوصیت allow paging رو برابر true میزاری بعد خصوصیت page size رو هر چی دوست داری میدی ینی میخوای تو هر صفحه چند رکورد نشون بده
بعد خصوصیت OnPagheIndexChanged رو که توی قسمت html هست رو یه مقداری که دوست داری میدی فقط یه اسم هست واسه روال ما اینجا indexchanged میدیم
بعد کدهای زیر رو اضافه میکنی به کد بیهایندت
کد:
 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then
            binddatagrid()
        End If
    End Sub
 Sub binddatagrid()
        Dim da As SqlDataAdapter
        Dim ds As DataSet
          strselect = "select * from table"
                da = New SqlDataAdapter(strselect, cn)
                ds = New DataSet()
                da.Fill(ds, "article")
                DataGrid1.DataSource = ds
                DataGrid1.DataBind()
    End Sub
 Sub indexchanged(ByVal s As Object, ByVal e As DataGridPageChangedEventArgs)
        startint = (e.NewPageIndex * DataGrid1.PageSize)
        DataGrid1.CurrentPageIndex = e.NewPageIndex
        bindgrid()
    End Sub
کاستوم یه مقدار طولانی تره فعلا این باشه تا اونم بزارم
حالا فرق اوتوماتیک با کاستوم چیه؟
اوتو ماتیک هر دفعه مثلا هر 100 تارو میخونه ولی فقط مثلا 10 تاشو نشون میده که واسه حجم بالا باعث کند شدن سرعت میشه وای کاستوم اینجوری نیست حساب میکنه کدوم ها باید نشون داده بشه فقط اونارو میاره
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
ادیت شد..................
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
اینم کاستوم
فقط باید خصوصیت allowcustompaging رو هم true کنی
واسه نوع صفحه عوض کردن هم خصوصیت pagerstyle-modeرو میتونی برابر دو مقدار numericpages و prevnext قرار بدی
کد:
  Dim cn As SqlConnection
    Dim str As String
    Dim startid As Integer
    Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
    Dim endid As Integer
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim cm As SqlCommand
        cn = New SqlConnection("مشخصات کانکشن")
        If Not IsPostBack Then
            str = "select Count(*) from table"
            cm = New SqlCommand(str, cn)
            cn.Open()
            DataGrid1.VirtualItemCount = (cm.ExecuteScalar() / DataGrid1.PageSize)
            cn.Close()
            binddatagrid()
        End If
    End Sub
    Sub binddatagrid()
        Dim da As SqlDataAdapter
        Dim ds As DataSet
        endid = startid + DataGrid1.PageSize
        str = "select * from table where ID > @startid and ID <= endid order bye ID"

    End Sub
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
آقا واقعا ممنون خيلي به درد خورد
 

ali00h

Registered User
تاریخ عضویت
27 آگوست 2005
نوشته‌ها
95
لایک‌ها
0
سن
39
فقط اگه اون query پيدا بشه خيلي خوبه
اگه كسي بلده لطفا بگه
 
بالا