وارد کردن فقط عدد در تکست باکس (TextBox)
در موارد زیادی پیش می آد که لازم باشه کاربر فقط عدد رو تو یک تکست باکس وارد کنه ، برای این کار روشهای زیادی وجود داره اما یکی از آسونترین راهها و البته نه بهترین راه ، استفاده از تابع TryParseاست که در دات نت 2 وجود داره
البته راههای سریعتر و با بازده بهتری وجود داره که به دلیل راحت تر بودن این راه این راه رو برای شما آوردم
برای این کار در رویداد KeyPress تکست باکس مورد نظر کد زیر را وارد کنید
private void InputNumber_KeyPress(object sender, KeyPressEventArgs e)
{
int isNumber = 0;
e.Handled = !int.TryParse(e.KeyChar.ToString(), out isNumber);
}
-------------------------
رنگ آميزي سطر هاي DataGridView به صورت يك در ميان
براي انجام اين كار DataGridView به فرم خود اضافه كنيد و پارامترهاي ديتاي آن را تعيين كنيد ،سپس به قسمت Properties برويد و به دنبال گزينه RowDefaultCellStyle بگرديد آن را باز كرده و موارد دلخواه را تنظيم نماييد ، پس از انجام اين كار اگر دقت كنيد تمامي سطر هاي DataGridView به رنگ و Style تنظيمي شما در مي آيد ، حال دوباره به قسمت Properties مراجعه كنيد و به دنبال گزينه AlternatingRowDefaultCellStyle بگرديد ، اين گزينه را باز كرده و Style مورد نظر را تنظيم كرده ، يك بار پروژه را اجرا كنيد و نتيجه را ملاحظه كنيد
---------------------------------------------
شماره ی سطر دادن به نتیجه ی Query
با سلام متاسفانه به دلیل کمبود وقت یک مقاله از یکی از سایتهای فارسی زبان های برنامه نویسی براتون انتخاب کردم
در بسیاری از مواقع احتیاج داریم که به هر سطر از نتیجه ی Query یک شماره بدهیم. بطور مثال در تکنیک Paging (صفحه بندی) این موضوع الازمی است.
نرم افزار SQL Server 2005 یکسری توابعی به نام Ranking را معرفی کرد که این کار را به سادگی و زیبایی انجام می دهد. در ادامه این موضوع در نسخه ی 2000 و 2005 مورد بررسی قرار خواهد گرفت.
نسخه ی 2000
برای اینکه درک مساله ساده تر شود از یک مثال استفاده خواهد شد. ابتدا یک متغیر جدول با یک ستون تعریف کرده و تعدادی سطر در آن انتشار داده می شود (توجه کنید که از آخرین Syntax نرم افزار SQL Server استفاده شده است)
DECLARE @t TABLE (i INT);
INSERT @t VALUES (1), (3), (4), (8);
SELECT * FROM @t;
/*
i
---
1
3
4
8
*/
روش اول: تابع IDENTITY INTO
SELECT *, IDENTITY (INT, 1, 1) AS ID
INTO #temp
FROM @t;
SELECT *
FROM #temp;
/*
i ID
----------- -----------
1 1
3 2
4 3
8 4
*/
این تابع که همراه با ماده ی INTO استفاده می شود به نتیجه ی کوئری یک ستون IDENTITY اضافه کرده و نتیجه ی حاصل را در یک جدول جدید درج می کند.
روش دوم: خصیصه ی IDENTITY
DECLARE @table TABLE (i INT, ID INT IDENTITY);
INSERT INTO @table SELECT * FROM @t
SELECT * FROM @table
/*
i ID
--- ----
1 1
3 2
4 3
8 4
*/
ابتدا یک متغیر جدولی با ساختار جدول اصلی و یک ستون اضافی با خصیصه ی IDENTITY تعریف نموده سپس با کمک دستور INSERT SELECT تمام سطرها جدول را در متغیر جدولی درج می کنیم.
نسخه ی 2005/2008
SELECT *, ID = ROW_NUMBER() OVER(ORDER BY i ASC)
FROM @t
تابع ROW_NUMBER بدون PARTITION به هر سطر از جدول یک شماره که از 1 آغاز شده و یکی یکی افزایش پیدا می کند خواهد داد. ترتیب نیز بر اساس صعودی ستون i خواهد بود