برگزیده های پرشین تولز

يك سوال در مورد VB.Net

Ali_Nob

کاربر تازه وارد
تاریخ عضویت
25 آپریل 2004
نوشته‌ها
290
لایک‌ها
2
سلام
هر چند كه ظاهرا اينجا كسي VB.Net كار نكرده و يا نمي خواهند جواب بدن ولي با اين حال:
در مورد كار با Database هاي حجيم فرضا اگر ما بخواهيم به آخرين ركورد مرتب شده يك بانك اطلاعاتي دسترسي داشته باشيم طبيعتا اگر يك Dataset را از آن Fill كنيم كار اشتباهي است زيرا تمام بانك اطلاعاتي به حافظه منتقل مي شود پس براي اين منظور چه راه حلي پيشنهاد مي كنيد ؟
با تشكر
 

miladkdz

کاربر تازه وارد
تاریخ عضویت
30 آگوست 2003
نوشته‌ها
172
لایک‌ها
0
سن
35
محل سکونت
Tehran, Ekbatan
به نقل از Ali_Nob :
سلام
هر چند كه ظاهرا اينجا كسي VB.Net كار نكرده و يا نمي خواهند جواب بدن ولي با اين حال:
در مورد كار با Database هاي حجيم فرضا اگر ما بخواهيم به آخرين ركورد مرتب شده يك بانك اطلاعاتي دسترسي داشته باشيم طبيعتا اگر يك Dataset را از آن Fill كنيم كار اشتباهي است زيرا تمام بانك اطلاعاتي به حافظه منتقل مي شود پس براي اين منظور چه راه حلي پيشنهاد مي كنيد ؟
با تشكر
سلام
جوابت واقعا ساده هستش! برای این کار باید از SQL Query زير استفاده كني:
SELECT TOP 1 * FROM tblName ORDER BY ID DESC
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
به نقل از Ali_Nob :
سلام
هر چند كه ظاهرا اينجا كسي VB.Net كار نكرده و يا نمي خواهند جواب بدن ولي با اين حال:
در مورد كار با Database هاي حجيم فرضا اگر ما بخواهيم به آخرين ركورد مرتب شده يك بانك اطلاعاتي دسترسي داشته باشيم طبيعتا اگر يك Dataset را از آن Fill كنيم كار اشتباهي است زيرا تمام بانك اطلاعاتي به حافظه منتقل مي شود پس براي اين منظور چه راه حلي پيشنهاد مي كنيد ؟
با تشكر

سلام
این هم کدی که این کار رو انجام میده :
(با استفاده از Query ای که miladkdz گفتن. )

Dim conn As New Data.SqlClient.SqlConnection
conn.ConnectionString = "server=(local);database=MyDB;user=sa;password=pass" '
Dim comm As New Data.SqlClient.SqlCommand("SELECT TOP 1 * FROM Table1 ORDER BY Salary DESC", conn)
conn.Open
Dim result As Data.SqlClient.SqlDataReader = comm.ExecuteReader
result.Read
Console.WriteLine(result.Item("Salary"))
conn.Close

در این مثال فرض کردیم که جدول Table1 شامل فیلدی به نام Salary است که ما این Salary ها رو به طور نزولی مرتب کرده
و اولین رکورد رو از Database می گیریم (یعنی بیشترین Salary رو) و بعد اون رو چاپ می کنیم.
 

Ali_Nob

کاربر تازه وارد
تاریخ عضویت
25 آپریل 2004
نوشته‌ها
290
لایک‌ها
2
با تشكر فراوان از miladkdz و MehdiC# عزيز
البته من رفتن به ركورد اخر زو بعنوان مثال گفتم ولي آيا رسيدن و جستجو بر روي يك ركورد يا سطر خاص از بانك اطلاعاتي رو هميشه ميشه با دستورات SQL پيدا كرد مثلا فرض كنيد كه ما بخواهيم به ركوردي دست يابيم كه مثلا يك فيلدي از آن در يك تابعي صدق كند و يا تركيبي از برخي ار فيلد هاي آن در يك رابطه قرار گيرند و بطور كلي اساسا نتوان با فيلتر هاي دستورات Sql به آن دست يافت و لازم باشد كه با يك سري If و شروط ديگر به ركورد مورد نظر دست يافت در اين صورت چه بايد كرئ من اين كارها رو قبلا با Recordset ها در VB6 به اين صورت انجام مي دادم كه به بانك اطلاعاتي متصل مي شدم و ركورد به ركورد ان آن خوانده و با مجموعه شروط مورد نظر تست مي كردم تا به ركورد مورد نظر دست مي ياقتم در اينجا كار چگونه است

يك سوال مهم ديگر
در دستورات Sql اگر بخواهيم يك متغير را در String Sql قرار دهيم در صورتي كه :
عددي باشد بصورت : " & Variable & "
رشته اي : ' " & Variable & " '
اگر Boolean باشد به چه شكل بايد بكار برد؟
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
سلام
من از Oracle و بقیه پایگاه داده ها چیزی نمی دونم ، اما در SQL Server
میتونین از TSQL استفاده کنین ، در ضمن به جای اینکه از طریق کدتون یکی یکی رکوردها رو
مرور کنین ، از Stored Procedure استفاده کنین تا سرعت و بازدهی برنامه تون بالا بره.
(TSQL توابع زیادی داره و تقریبا تمام نیاز ها رو پاسخگوست ، همین IF و شرط و فلان که میگین
داخل TSQL هست و شما رو از هر چیز دیگری بی نیاز می کنه)

قسمت دوم سوالتون رو متوجه نشدم.
 

Ali_Nob

کاربر تازه وارد
تاریخ عضویت
25 آپریل 2004
نوشته‌ها
290
لایک‌ها
2
به نقل از MehdiC# :
سلام
من از Oracle و بقیه پایگاه داده ها چیزی نمی دونم ، اما در SQL Server
میتونین از TSQL استفاده کنین ، در ضمن به جای اینکه از طریق کدتون یکی یکی رکوردها رو
مرور کنین ، از Stored Procedure استفاده کنین تا سرعت و بازدهی برنامه تون بالا بره.
(TSQL توابع زیادی داره و تقریبا تمام نیاز ها رو پاسخگوست ، همین IF و شرط و فلان که میگین
داخل TSQL هست و شما رو از هر چیز دیگری بی نیاز می کنه)

قسمت دوم سوالتون رو متوجه نشدم.

با تشکر از توضیحتون
در مورد بخش دوم سوالم یعنی مثلا با دستور
("& Insert Into
[Field1] Value ( " & Variable
که در آن قرار است محتویات Variable در بانک اطلاعاتی اعمال گردد.
مورد فوق مثالی برای متغیر عددی می باشد برای متغیر Boolean چه ساختاری دارد؟
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
سلام
اگه منظورتون وارد کردن مقادیر بولی در خود SQL هست ، که اصلا نیازی
به syntax خاصی نیست ، (عین عددی ها)
در VB .NET هم خیلی راحت متغیر های بولی رو به عنوان پارامتر وارد می کنید
و خود VB .NET اینکار رو براتون انجام میده .

یه سر هم به فروم SQL در http://www.irasp.net بزنید.
(در این سایت ، همجنین یه ebook فارسی دربارۀ SQL وجود داره ، شاید به دردتون بخوره)
 
بالا