تکس باکس عددی Numeric TextBox Javascript

اگر یه تکس باکس دارید که می خواهید ، کاربر فقط اجازه داشته باشه که عدد واردش کنه راش اینجاست چشمک

خیلی از جاها میشه نمونه این کار رو با JQuery ببینید اما اینو با جاوا اسکریپت خام میشه درآورد که خیلی کاربردی تر است.

function KeyPress(e)
{
    //Allow `Delete` & `BackSpace`
    if ([e.keyCode||e.which]==8 || [e.keyCode||e.which]==46) 
        return true;
    if ([e.keyCode||e.which] < 48 || [e.keyCode||e.which] > 57)
        e.preventDefault ? e.preventDefault() : e.returnValue = false;
    return true;
} 

این هم Textboxی که باید تو صفحه قرار بدید

<input id="numericTextbox" onkeypress="KeyPress(event)" type="text" value="" /> 
Reference
آشنایی بیشتر با کدهای کلیدها



برچسب های این مطلب : بریده کد و ترفند و javascript
بدست آوردن عدد بعدی تولید شده برای ستون ID در SQL

با سلام.

گاهی نیاز است که ما بتونیم تا عدد بعدی ستون ID رو که PrimaryKey کردیم و به صورت اتوماتیک زیاد میشه بخونیم.

اگر Table ما خالی نباشه که به راحتی میشه با LINQ این کار رو انجام داد

public int GetLastNewsID()
{
    return TableNames.Select(q => q.id).Max();
}

 

اما اگر Table ما خالی باشه تابع بالا Exception میده و کار خراب میشه. برای اینکه هیچ وقت با Exception مواجه نشیم باید از T-SQL استفاده کنیم. خوب من تابع مورد نیاز برای این کار رو براتون نوشتم که امیدوارم به دردتون بخوره.

Create FUNCTION [dbo].[GetLastNewsID](@TableName NVARCHAR(50))
RETURNS int
AS
BEGIN
    RETURN(SELECT IDENT_CURRENT (@TableNameAS Current_Identity);
END

حالا اگر بخواهیم از خود LINQ استفاده کنیم تابع زیر کار ما رو راه می اندازه:

public int GetLastID(string tableName)
{
    const string command = @"SELECT IDENT_CURRENT ({0}) AS Current_Identity;";
    var id = EntityModel.ExecuteStoreQuery(command, tableName).First();
    return Convert.ToInt32(id);
}


کلمات کلیدی :
next automatically incrementing primary key

منبع StackSverFlow




برچسب های این مطلب : sql و بریده کد و ترفند و linq
بازگردانی دیتابیس SQL توسط T-SQL

توسط متد زیر به راحتی می تونید یه دیتابیس رو که روی هارد ذخیره شده رو با یه فایل پشتیبان که اون هم روی هارد دیسک هست بازگردانی کنید :

void Restore(string ConnectionString, string DatabaseFullPath)
{
    using (SqlConnection con = new SqlConnection(ConnectionString))
    {
        con.Open();

        string UseMaster = "USE master";
        SqlCommand UseMasterCommand = new SqlCommand(UseMaster, con);
        UseMasterCommand.ExecuteNonQuery();

        string Alter1 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Single_User WITH Rollback Immediate";
        SqlCommand Alter1Cmd = new SqlCommand(Alter1, con);
        Alter1Cmd.ExecuteNonQuery();

        string Restore = @"RESTORE DATABASE [" + DatabaseFullPath + "] FROM DISK = N'" + backUpPath + @"' WITH  FILE = 1,  NOUNLOAD,  STATS = 10";
        SqlCommand RestoreCmd = new SqlCommand(Restore, con);
        RestoreCmd.ExecuteNonQuery();

        string Alter2 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Multi_User";
        SqlCommand Alter2Cmd = new SqlCommand(Alter2, con);
        Alter2Cmd.ExecuteNonQuery();

        labelReport.Text = "Successful";
    }
} 

کلمات کلیدی : Restore SQL DataBase , Exclusive access could not be obtained because the database is in use , T-SQL , C#




برچسب های این مطلب : #c و بریده کد و sql
خاموش کردن سیستم توسط C#

با کد زیر می تونید سیستم رو خاموش کنید :

void button_Click(object sender, EventArgs e)
{
    try
    {
	ManagementBaseObject mboShutdown = null;
	ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem");
	mcWin32.Get();
	// You can't shutdown without security privileges
	mcWin32.Scope.Options.EnablePrivileges = true;
	ManagementBaseObject mboShutdownParams = mcWin32.GetMethodParameters("Win32Shutdown");
	// Flag 1 means we want to shut down the system
	"mboShutdownParams[Flags"] = "1";
	"mboShutdownParams[Reserved"] = "0";
	foreach (ManagementObject manObj in mcWin32.GetInstances())
		mboShutdown = manObj.InvokeMethod("Win32Shutdown", mboShutdownParams, null);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
} 



برچسب های این مطلب : #c و بریده کد و ترفند
Disable کردن Enter در TextBox در ASP.NET

اگر با ASP.NET کار کرده باشید ، میدونید که با فشار دادن Enter داخل یه TextBox فرم توسط DefaultButton فرم Submit میشه.

خوب این همیشه چیزه خوبی نیست ، چون با توجه به اینکه ما تنها یه فرم میتونیم تو ASP.NET داشته باشیم ، برای همین نباید فرم همیشه با یه Button خاص Submit شه.

برای حل این مشکل ما می تونیم دکمه Enter رو تو بعضی TextBoxها Disable کنیم تا کاربر مجبور شه روی دکمه Submit مورد نظر ما کلیک کنه.ما این کار رو با استفاده از JavaScript و رویداد OnKeyDown انجام میدیم.

<script language="javascript" type="text/javascript">
function CancelEnter() 
{
    if (window.event.keyCode == 13) 
    {
        event.returnValue = false;
        event.cancel = true;
    }
}
</script>
.
.
.
<asp:TextBox ID="TextBoxSearch" runat="server" OnKeyDown="CancelEnter()"></asp:TextBox> 



برچسب های این مطلب : بریده کد و aspnet و ترفند و javascript
SHA در C#

همان طور که میدونید مدتی هست که دیگه به برنامه نویسان توصیه میشه برای Hashing از MD5 استفاده نکنند. MD5 یه الگوریتم خوب برای به هم ریختن یه رشته بود که مدت ها بود که استفاده میشد و خوب ، هنوز هم استفاده میشه ، اما دیگه تاریخ مصرفش تموم شده و روش های جدیدی چون SHA جاشو گرفتن.

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

using System.Security.Cryptography;
using System.Text;

private static string GetSHA1(string strPlain)
{
    UnicodeEncoding UE = new UnicodeEncoding();
    byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
    SHA1Managed SHhash = new SHA1Managed();
    string strHex = "";

    HashValue = SHhash.ComputeHash(MessageBytes);
    foreach (byte b in HashValue)
    {
        strHex += String.Format("{0:x2}", b);
    }
    return strHex;
}

private static string GetSHA256(string strPlain)
{
    UnicodeEncoding UE = new UnicodeEncoding();
    byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
    SHA256Managed SHhash = new SHA256Managed();
    string strHex = "";

    HashValue = SHhash.ComputeHash(MessageBytes);
    foreach (byte b in HashValue)
    {
        strHex += String.Format("{0:x2}", b);
    }
    return strHex;
} 



برچسب های این مطلب : #c و بریده کد و رمز نگاری
MD5 در C#

اگر قبلا با زبان هایی مثل PHP کار کرده باشید حتما با الگوریتم به هم ریختن MD5 آشنایی دارید.

کد زیر تابعی است که این کار را در C# انجام می دهد.

public string MD5(string password)
{
    byte[] textBytes = System.Text.Encoding.Default.GetBytes(password);
    try
    {
        MD5CryptoServiceProvider cryptHandler;
        cryptHandler = new MD5CryptoServiceProvider();
        byte[] hash = cryptHandler.ComputeHash(textBytes);
        string ret = "";
        foreach (byte a in hash)
        {
            if (a < 16)
                ret += "0" + a.ToString("x");
            else
                ret += a.ToString("x");
        }
        return ret;
    }
    catch { throw; }
} 



برچسب های این مطلب : #c و بریده کد و رمز نگاری
بدست آوردن آدرس IP از روی DNS HostName در C#
private void Button1_Click(object sender, EventArgs e)
{
    textBoxIP.Text = GetIP(GetHostName("http://mds-soft.persianblog.ir/post/100/"));
}

/// <summary>
/// Returns the Host name from a web address
/// </summary>
private string GetHostName(string WebAddress)
{
    string HostName = "";
    string OriginalUrl = WebAddress.Trim();
    Uri uri;

    if (!Uri.TryCreate(WebAddress, UriKind.Absolute, out uri))
        HostName = new UriBuilder(WebAddress).Host;
    else
        HostName = uri.Host;

    return HostName;
}

/// <summary>
/// Returns the IP of HostName
/// </summary>
private string GetIP(string HostName)
{
    IPAddress[] addresslist = Dns.GetHostAddresses(HostName);
    return addresslist[0].ToString();
} 



برچسب های این مطلب : #c و بریده کد و net
بدست آوردن نام host از یک آدرس اینترنتی در C#

شاید گاهی پیش بیاد که مایل باشید،آدرس host رو از یک URI یا URL استخراج کنید ، مثلا می خواهید آدرس persianblog.ir رو از آدرس زیر جدا کنید :
http://persianblog.ir/CreatePost.aspx?blogID=5752
برای این کار چند راه هست :

توسط عبارات منظم :

private string GetHostName(string WebAddress)
{
    string Pattern = @"//(\w.*?\w)/";
    Regex re = new Regex(Pattern, RegexOptions.IgnoreCase);
    string HostName = re.Match(WebAddress.Trim()).Groups[1].Value;
    return HostName;
} 

توسط Uri و UriBuilder :

private string GetHostName(string WebAddress)
{
    string HostName = "";
    string OriginalUrl = WebAddress.Trim();
    Uri uri;

    if (!Uri.TryCreate(WebAddress, UriKind.Absolute, out uri))
        HostName = new UriBuilder(WebAddress).Host;
    else
        HostName = uri.Host;

    return HostName;
} 



برچسب های این مطلب : #c و بریده کد و net
بدست آوردن مسیر فایل exe اصلی برنامه خودمون

گاهی نیاز هست تا بدونیم برنامه ما در کدام مسیر از هارد کامپیوتر مقصد در حال اجرا شدن هست. با استفاده از کد زیر ما می تونیم مسیر فایل exe اصلی برنامه رو پیدا کنیم :

WPF :

string FullPathOfExeFile = 
	System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\"; 


Win Form :

string FullPathOfExeFile = 
	Application.StartupPath + "\\" 



برچسب های این مطلب : #c و wpf و بریده کد
تولید اعداد تصادفی غیر تکراری

Non-repetitive random number C#

مشکل کلاس Random اینه که همیشه اعدادی که تولید می کنه غیر تکراری نیستند و گاهی یک عدد چندین بار پشت سر هم تکرار میشه حتی اگر از تعریف زیر استفاده کنیم:

Random random = new Random((int)DateTime.Now.Ticks); 

خروجی متد زیر لیستی است شامل اعداد غیر تکراری بین اعداد ورودی به تابع.

List<int> UniqueRandom(int minInclusive, int maxInclusive)
{
    List<int> ReturnList = new List<int>();
    List<int> candidates = new List<int>();
    for (int i = minInclusive; i <= maxInclusive; i++)
    {
        candidates.Add(i);
    }
    Random rnd = new Random();
    while (candidates.Count > 0)
    {
        int index = rnd.Next(candidates.Count);
        ReturnList.Add(candidates[index]);
        candidates.RemoveAt(index);
    }
    return ReturnList;
} 



منبع




برچسب های این مطلب : #c و بریده کد
تبدیل اعداد انگلیسی به فارسی

متد زیر به صورت  ExtensionMethod نوشته شده. پس فقط کافی است این کلاس رو به پروژتون اضافه کنید. بعد از اون آخر هر رشته که نقطه بزنید می تونید این متد رو مشاهده کنید.

public static class ExtensionMethods
{
    /// <summary>
    /// متدی برای تبدیل اعداد انگلیسی به فارسی
    /// </summary>
    public static string ToPersianNumber(this string input)
    {
        //۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹
        input = input.Replace("0", "۰");
        input = input.Replace("1", "۱");
        input = input.Replace("2", "۲");
        input = input.Replace("3", "۳");
        input = input.Replace("4", "۴");
        input = input.Replace("5", "۵");
        input = input.Replace("6", "۶");
        input = input.Replace("7", "۷");
        input = input.Replace("8", "۸");
        input = input.Replace("9", "۹");
        return input;
    }
} 



برچسب های این مطلب : #c و بریده کد
بدست آوردن لیست تمامیه Type ها در .Net

با سلام.
چند وقت پیش دنبال یه کدی بودم که بشه لیست تمامیه Type های .NET Framework رو باهاش در آورد.
جایی نتونستم پیدا کنم ، فقط با راهنماییه بچه های CodeProject فهمیدم که باید از Reflection استفاده کنم. چیزس که قبلا کار نکرده بودم .
بعد از یه دو سه روزی کار کردن و آشنا شدن با هاش این کد رو نوشتم که اسم تمامیه Type های .Net رو پیدا می کنه و اونا رو به syntax یه آرایه از string در C# در میاره و تو یه فایل کنار خود پروژه ذخیره می کنه .
حالا برا شما هم این کد رو می زارم

static string fileName = "types.txt";
static void Main(string[] args)
{
    StreamWriter SW;
    SW = File.CreateText(fileName);
    SW.WriteLine("string[] mds = new string[] {");
    SW.Write("\t\t\t\t\t");

    DirectoryInfo directory = new DirectoryInfo(Environment.ExpandEnvironmentVariables("%SystemRoot%") + @"\assembly");

    Assembly assembly;
    Type[] types;

    var DLL_Files = directory.GetFiles("*.dll", SearchOption.AllDirectories);

    short i = 0;
    int assembliesCounter = 0;
    int typeCounter = 0;
    int allAssemblies = DLL_Files.Length;
    int counter = 0;

    foreach (var file in DLL_Files)
    {
        assembliesCounter++;
        try
        {
            assembly = Assembly.LoadFile(file.FullName);
            types = assembly.GetTypes();
            typeCounter = types.Length;
            foreach (var type in types)
            {
                i++;
                typeCounter--;
                if (i > 10)
                {
                    SW.WriteLine("\"" + type.Name.Replace("\\", "") + "\"" + ", ");
                    SW.Write("\t\t\t\t\t");
                    i = 0;
                }
                if (assembliesCounter >= allAssemblies && typeCounter <= 0)
                    SW.Write("\"" + type.Name.Replace("\\", "") + "\"");
                else
                    SW.Write("\"" + type.Name.Replace("\\", "") + "\"" + ", ");
                counter++;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

    SW.WriteLine("};");
    SW.Close();

    Console.WriteLine("\n{0} Types Found", counter.ToString());
    Console.WriteLine("Finish");
    Console.ReadKey();
}

کلمات کلیدی : لیست کلاس ها ، لیست namespace ها ، list of class namespace , C# , VB , .Net Framework




برچسب های این مطلب : #c و reflection و بریده کد
IE7 & IE6 CSS Hack

گاهی پیش میاد که می خواهیم یه خصیصه از CSS فقط در مرورگرهای IE6 یا IE7 اعمال شه :
برای این کار باید از کاراکتر ! برای IE7 و _ برای IE6 استفاده کنیم .
برای مثال کد زیر را ببینید

.body{
  margin-left: 140px; /* برای سایر مرورگرها */
  !margin-left: 13px; /* For IE7 */
  _margin-left: 13px; /* For IE6 */
  }



برچسب های این مطلب : css و internet explorer و hack و بریده کد
هک کردن دستور max-width در IE6

تو CSS2 ما میتونیم حداکثر اندازه اشیای صفحه Html رو با دستور CSS یه max-width کنترل کنیم ، اما این دستور در Internet Explorer 6 که متاسفانه هنوز مرورگر محبوبی تو ایران هست کار نمیکنه ، چو IE6 اصلا CSS2 رو پشتیبانی نمیکنه.

اما این راه داره ، و ما میتونیم معادل این دستور رو تو IE6 بنویسیم ( هک کنیم )
به طور مثال ، دستورات زیر معادل همدیگر هستند :

max-width: 350px;
width: expression(this.width > 350 ? 350: true);



برچسب های این مطلب : hack و css و internet explorer و بریده کد
حذف کامل تبلیغات بلاگ ها

این کد رو بعد از کلی ور رفتن با فایل های جدید Javascript پرشین بلاگ نوشتم ، رو وب لاگ خودم جواب داد ، امیدوارم برا شما هم جواب ده .

بعد از مدتی این کد رو برای blogfa امتحان کردم . از اونجایی که سیستم تبلیغات پرشین بلاگ و بلاگفا خیلی شبیه همدیگر است رو بلاگفا هم جواب داد . 

فقط کافی هست کد زیر رو بعد از تگ <body> قرار بدین .

توجه داشته باشید که این کد دقیقا باید اولین کد بعد از <body> باشه و بعد از اون تگ های دیگر  . میتونید سورس وب خودم رو مشاهده کنید .

اما جدیدا بلاگفا اجازه وارد کردن این کد ( یا کدهای مشکوک رو که ممکن هست باعث حذف تبلیغاتش بشن ) رو نمیده ، برای همین این کد عملا دیگه برای بلاگفا کارایی نداره. احتمالا تا چند وقت دیگه هم پرشین بلاگ این کار رو می کنه ناراحت

 

<script language="javascript" type="text/javascript">var MdsElement = document.getElementsByTagName("div"); MdsElement[0].style.display = "none";/* http://www.mds-soft.persianblog.ir/ */</script> 



اگر بالایی جواب نداد برای PersianBlog کد زیر رو هم امتحان کنید

<script language="javascript" type="text/javascript">var MdsElement = document.getElementById("divADV"); MdsElement.style.display = "none";/* http://www.mds-soft.persianblog.ir/ */</script> 



1390/09/23 :
پرشین بلاگ دیگه اجازه نمیده تو کد وبلاگ جاوااسکریپت بزاری و عملا دیگه کدهای بالا بی فایده شدن




برچسب های این مطلب : javascript و بریده کد