Showing posts with label C# Basic. Show all posts
Showing posts with label C# Basic. Show all posts

Friday, June 16, 2017

[Share] Tools Boot Traffic SSH

Tools Boot Traffic SSH



Chào các bạn SEOer, như các bạn đã biết sau khi xây dựng backlink cho website, việc tiếp theo là chúng ta phải submit backlink đó lên Google để các công cụ tìm kiếm index backlink đó càng nhanh càng tốt. Đồng thời chúng ta cũng phải chia sẻ backlink đó lên mạng xã hội để tăng lưu lượng truy cập đổ về website mà chúng ta cần SEO. Ngoài ra chúng ta có thể sử dụng một số phần mềm boot traffic để tự động click vào backlink đó. 

Tool Boot Traffic miễn phí


Hiện nay trên thị trường có khá nhiều Tool Boot Traffic, chẳng hạn như iView Premium hoặc iClick tuy nhiên các phần mềm này đều có phí. Hôm nay mình sẽ chia sẻ với các bạn Tool Traffic do mình tự code trên nền tảng .Net đây là 1 Tool Boot Traffic bằng SSH khá hiệu quả. Đặc biệt tool này có thể tự động click vào tọa độ trên website mà mình đã cài đặt, có thể fake Link Referral, các bạn xem báo cáo của Google Analytics bên dưới sẽ rõ.


boot-traffic-google-analytics

- Để tải phần mềm các bạn vui lòng để lại email mình sẽ gửi phần mềm vào hộp thư mail của các bạn ngay sau đó. Chi tiết liện hệ Facebook : Cường Nguyễn.

Tuesday, December 13, 2016

Phần 2: SqlConnection

 

Tạo một đối tượng SqlConnection

Một đối tượng SqlConnection giống như các đối tượng khác trong C#. Bạn chỉ cần khai báo một thể hiện của SqlConnection, như dưới đây:
SqlConnection conn = new SqlConnection(
“Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI”);
 
Đối tượng SqlConnection trên sử dụng constructor với một tham số kiểu string. Tham số này được gọi là chuỗi kết nối (connection string). Table 1 mô tả các phần của một connection string.
Table 1.  ADO.NET Connection String chứa các cặp key/value để xác định cách tạo một kết nối đến database.  Chúng bao gồm vị trí, tên của database và và chế độ bảo mật.
Connection String Parameter Name Description
Data Source Identifies the server.  Could be local machine, machine domain name, or IP Address.
Initial Catalog Database name.
Integrated Security Set to SSPI to make connection with user’s Windows login
User ID Name of user configured in SQL Server.
Password Password matching SQL Server User ID.
Integrated Security sẽ bảo mật khi bạn làm việc trên một máy đơn. Tuy nhiên, bạn sẽ thường xuyên cần phải định rõ mức bảo mật dựa trên SQL Server User ID với quyền hạn được xác định cho ứng dụng bạn sử dụng. Đoạn mã sau sử dụng một connection string với tham số User ID và Password:

 
SqlConnection conn = new SqlConnection(
“Data Source=DatabaseServer;Initial Catalog=Northwind;User ID=YourUserID;Password=YourPassword”);
 
Lưu ý Data Source được gán cho DatabaseServer để chỉ ra rằng bạn có thể định danh một database trên một máy khác, thông qua mạng LAN, hoặc qua Internet. Ngoài ra, User ID và Password được thay thế cho tham số Integrated Security.

Sử dụng SqlConnection

Mục đích của việc tạo một đối tượng SqlConnection là để các mã lệnh ADO.NET khác có thể làm việc được với database. Các đối tượng ADO.NET khác, như SqlCommand và SqlDataAdapter dùng một connection như một tham số. Quá trình sử dụng SqlConnection gồm các bước sau:
  1. Tạo một SqlConnection.
  2. Mở connection.
  3. Truyền connection  cho các đối tượng ADO.NET khác.
  4. Thực hiện các thao tác database với các đối tượng ADO.NET này.
  5. Đóng connection.
Chúng ta đã thấy cách để tạo một đối tượng SqlConnection. Những bước còn lại, mở, truyền, sử dụng và đóng connection được thể hiện trong Listing 1.


 
using System;
using System.Data;
using System.Data.SqlClient;
 
/// 
/// Demonstrates how to work with SqlConnection objects
/// 
class SqlConnectionDemo
{
    static void Main()
    {
        // 1. Instantiate the connection
        SqlConnection conn = new SqlConnection(
            "Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI");
 
        SqlDataReader rdr = null;
 
        try
        {
            // 2. Open the connection
            conn.Open();
 
            // 3. Pass the connection to a command object
            SqlCommand cmd = new SqlCommand("select * from Customers", conn);
 
            //
            // 4. Use the connection
            //
 
            // get query results
            rdr = cmd.ExecuteReader();
 
            // print the CustomerID of each record
            while (rdr.Read())
            {
                Console.WriteLine(rdr[0]);
            }
        }
        finally
        {
            // close the reader
            if (rdr != null)
            {
                rdr.Close();
            }
 
            // 5. Close the connection
            if (conn != null)
            {
                conn.Close();
            }
        }
    }
}
 
Như đã thấy trong Listing 1, bạn mở một connection bằng cách gọi phương thức Open của đối tượng SqlConnection, conn. Bất kì thao tác nào thực hiện với SqlCommand cũng sử dụng connection này.
Mã lệnh sử dụng connection là một SqlCommand – đối tượng thực hiện truy vấn đến bảng Customers trong database. Tập kết quả trả về dưới dạng một SqlDataReader và vòng lặp while đọc cột đầu tiên của mỗi dòng trong tập kết quả này, chính là cột CustomerID. Chúng ta sẽ thảo luận về đối tượng SqlCommand và SqlDataReader trong lesson sau. Hiện tại, điều quan trọng là bạn cần hiểu rằng các đối tượng sử dụng SqlConnection để biết được database nào sẽ được truy xuất.
Khi bạn sử dụng xong đối tượng connection, bạn phải đóng nó. Thực hiện thất bại có thể gây ra các hậu quả nghiêm trọng đến hiệu suất và khả năng của ứng dụng. Như bạn thấy trong Listing 1: phương thức Close() được gọi trong một khối finally và chúng ta đảm bảo rằng connection sẽ khác null trước khi đóng nó.
Lưu ý rằng chúng ta bao đoạn mã ADO.NET trong một khối try/finally. Khối finally giúp đảm bảo rằng một phần mã lệnh sẽ được thực thi, bất kể một ngoại lệ có xảy ra hay không. Bởi vì các connection là một tài nguyên hệ thống ít ỏi, bạn sẽ cần phải chắc chắn rằng chúng được đóng trong khổi finally.
Một điểm bạn nên làm khi đóng connection là đảm bảo connection khác null. Nếu có sai sót xảy ra khi tạo connection, nó sẽ là null và bạn không nên cố đóng một connection không hợp lệ, điều này sẽ gây ra một ngoại lệ.
Ví dụ này cho thấy cách để dùng đối tượng SqlConnection với SqlDataReader – đối tượng yêu cầu bạn phải thực hiện một lệnh đóng connection rõ ràng. Tuy nhiên, khi dùng mô hình dữ liệu ngắt kết nối, bạn không cần phải mở và đóng connection thủ công. Chúng ta sẽ xem xét về vấn đề này trong lesson sau khi tìm hiểu về đối tượng SqlDataAdapter.
 
Sưu tầm: yinyangit 

Phần 1: Các đối tượng của ADO.NET

Các đối tượng của ADO.NET

ADO.NET bao gồm nhiều đối tượng bạn có thể dùng ADO.NET và cách chúng được sử dụng trong mỗi lesson riêng. Các đối tượng dưới đây bắt buộc bạn phải biết để làm việc với dữ liệu khi dùng ADO.NET.
với dữ liệu. Phần này giới thiệu một vài đối tượng chính bạn sẽ sử dụng. Theo tiến độ trong các bài viết sau, bạn sẽ khám phá thêm nhiều đối tượng
SqlConnection
Để tương tác với database, bạn phải có một kết nối tới nó. Kết nối giúp xác định database server, database name, user name, password, và các tham số cần thiết để kết nối tới database. Một đối tượng connection được dùng bởi đối tượng command vì thế chúng sẽ biết database nào để thực thi lệnh.
SqlCommand
Quá trình tương tác với database cần phải biết hành động nào bạn muốn xảy ra. Điều này được thực hiện bởi đối tượng command. Bạn dùng đối tượng command để gửi một câu lệnh SQL tới database. Một đối tượng command dùng một đối tượng connection để xác định database nào sẽ được truy xuất. Bạn có thể dùng một đối tượng command riêng lẻ để thực thi lệnh trực tiếp, hoặc để gắn một tham chiếu của đối tượng command cho một SqlDataAdapter – đối tượng giữ các command sẽ làm việc trên một nhóm dữ liệu như sẽ đề cập tới trong phần dưới.
SqlDataReader
Nhiều thao tác dữ liệu đòi hỏi bạn chỉ lấy một luồng dữ liệu để đọc. Đối tượng data reader cho phép bạn lấy được kết quả của một câu lệnh SELECT từ một đối tượng command. Để tăng hiệu suất, dữ liệu trả về từ một data reader là một luồng dữ liệu fast forward-only. Có nghĩa là bạn chỉ có thể lấy dữ liệu từ luồng theo một thứ tự nhất định. Mặc dù điều này có lợi về mặt tốc độ, nhưng nếu bạn cần phải thao tác dữ liệu, thì một DataSet sẽ là một đối tượng tốt hơn để làm việc.
DataSet
Đối tượng DataSet là một thể hiện của dữ liệu trong bộ nhớ. Chúng chứa nhiều đối tượng DataTable, bên trong DataTable lại có nhiều column và row, giống như các database table thông thường. Bạn thậm chí có thể định nghĩa dữ liệu giữa các table để tạo các quan hệ parent-child. DataSet được thiết kế đặc biệt để giúp quản lý dữ liệu trong bộ nhớ và để hỗ trợ các thao tác không cần kết nối (disconnected) trên dữ liệu. DataSet là một đối tượng được dùng bởi tất cả Data Provider, đó là lý do tại sao nó không có một Data Provider prefix trong tên gọi.
SqlDataAdapter
Đôi lúc dữ liệu mà bạn làm việc là read-only và bạn ít khi cần thay đổi dữ liệu nguồn. Vài trường hợp cần lưu trữ tạm dữ liệu trong bộ nhớ để hạn chế truy xuất đến database. Data adapter làm điều này dễ dàng bằng cách giúp bạn quản lý dữ liệu trong chế độ ngắt kết nối. Data adapter sẽ đổ vào DataSet khi đọc dữ liệu và thực hiện thay đổi dữ liệu một lượt vào database.
Data adapter chứa một tham chiếu đến đối tượng connection và mở/đóng kết nối tự động khi đọc và ghi dữ liệu vào database. Hơn nữa, data adapter chứa đối tượng command cho những thao tác SELECT, INSERT, UPDATE và DELETE trên dữ liệu. Bạn sẽ có một data adapter được định nghĩa cho mỗi table trong một DataSet và nó sẽ quản lý các giao tiếp với database cho bạn. Tất cả những gì bạn cần làm là chỉ cho data adapter khi nào nạp hoặc ghi vào database.

Sưu tầm: yinyangit

Stackoverflow String.Equals over ==

Lang thang trên các diễn đàn stackoverflow chợt đọc được một vấn đề mà có thể rất nhiều bạn đang học lập trình thường hay mắc phải.
Thường các bạn mới học lập trình hoặc một số bạn chưa lưu ý tới vấn đề so sánh chuỗi hay dùng các câu lệnh so sánh chuỗi là == . Trước khi vào viết bài này mình có đọc kỹ và tham khảo lại bài :

Why would you use String.Equals over ==?


Vào luôn vấn đề nhé, Sau đây là ví dụ nếu các bạn xem qua có thể là hiểu được luôn:




// Comment
object obj2 = str3;

// Comparision between object obj and string str2 -- Com 1
result = string.Equals(obj, str2);// true
result = String.ReferenceEquals(obj, str2); // true
result = (obj == str2);// true

// Comparision between object obj and string str3 -- Com 2
result = string.Equals(obj, str3);// true
result = String.ReferenceEquals(obj, str3); // false
result = (obj == str3);// false

// Comparision between object obj and string str4 -- Com 3
result = string.Equals(obj, str4);// true
result = String.ReferenceEquals(obj, str4); // true
result = (obj == str4);// true

// Comparision between string str2 and string str3 -- Com 4
result = string.Equals(str2, str3);// true
result = String.ReferenceEquals(str2, str3); // false
result = (str2 == str3);// true

// Comparision between string str2 and string str4 -- Com 5
result = string.Equals(str2, str4);// true
result = String.ReferenceEquals(str2, str4); // true
result = (str2 == str4);// true

// Comparision between string str3 and string str4 -- Com 6
result = string.Equals(str3, str4);// true
result = String.ReferenceEquals(str3, str4); // false
result = (str3 == str4);// true

// Comparision between object obj and object obj2 -- Com 7
result = String.Equals(obj, obj2);// true
result = String.ReferenceEquals(obj, obj2); // false
result = (obj == obj2);// false
 
The == token in C# is used for two different equality-check operators. When the compiler encounters that token, it will check whether either of the types being compared has implemented an equality-operator overload for either the specific combination types being compared(*), or for a combination of types to which both types can be converted. If the compiler finds such an overload it will use it. Otherwise, if the two types are both reference types and they are not unrelated classes (either may be an interface, or they may be related classes), the compiler will regard == as a reference-comparison operator. If neither condition applies, compilation will fail.
Note that some other languages use separate tokens for the two equality-check operators. In VB.NET, for example, the = token is used within expressions solely for the overloadable equality-check operator, and Is is used as a reference-test or null-test operator. An to use = on a type which does not override the equality-check operator will fail, as will attempting to use Is for any purpose other than testing reference equality or nullity.
(*)Types generally only overload equality for comparison with themselves, but it may be useful for types to overload the equality operator for comparison with other particular types; for example, int could have (and IMHO should have but didn't) defined an equality operators for comparison with float, so that 16777217 would not report itself equal to 16777216f. As it is, since no such operator is defined, C# will promote the int to float, rounding it to 16777216f before the equality-check operator sees it; that operator then sees two equal floating-point numbers and reports them as equal, unaware of the rounding that took place.
 

Thursday, November 24, 2016

ListView C# - Ví dụ nhỏ sử dụng ListView

ListView là một control dùng để hiển thị một danh sách các item với các biểu tượng. Chúng ta có thể sử dụng một  ListView để tạo ra một giao diện giống như cửa sổ bên phải của Windows Explorer. Bài viết này sẽ trình bày các cách sử dụng cơ bản đối với control này.

- Đầu tiên các bạn thiết kế cho mình 1 giao diện như sau :
ListView C# - Ví dụ nhỏ sử dụng ListView

Sau đó ta có 1 file text với nội dung như sau:

Đây là 1 file text chứa nội dung ID và tên người dùng của 1 groups nào đó và thông số có phải adm của groups đó không. Dữ liệu này mình lấy test trên Graph Explore của Facebook.

Thực hành: Nhét hết dữ liệu vào ListView để được kết quả như sau:


Bắt đầu ý tưởng:
- Đầu tiên ta click vào button và chọn file text cần hiển thị lên ListView => Sử dụng Event Click của button bằng cách kích đúp vào control button.

- Tiếp đó là ta sẽ dùng File IO để nhập xuất dữ liệu từ ngoài vào trong chương trình. Sau đó nhét dữ liệu đó vào trong 1 danh sách List<string>.

- Tiếp theo là xử lý các chuỗi rồi đưa vào List

Thực hiện:



Ta tạo một Phương thức có tên là ImportData.
Khởi tạo một đối tượng dialog trong object OpenFileDialog

OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = ".txt|*.txt"; // Bộ lọc chỉ được import file txt
dialog.Title = "Open File Text Facebook"; // Đặt tiêu đề là Open File Text Facebook cho ô cửa sổ mở chọn file.

 if (dialog.ShowDialog() == DialogResult.OK)
                {
                    listInformationFacebook = new List<string>(File.ReadAllText(dialog.FileName).Split('\n'));

                    listView1.View = View.Details; // Hiển thị bảng nhìn dưới dạng View.Details
                    listView1.GridLines = true; // Có để gạch dòng như excel hay không
                    listView1.FullRowSelect = true; // Chọn 1 ô tô kín hàng hay không.
                    listView1.Columns.Add("ID Facebook", 120); // Đặt tên cho ô đầu tiên
                    listView1.Columns.Add("Name Facebook", 150); // Đặt tên cho ô thứ 2
                    listView1.Columns.Add("Administrator", 70); // Đặt tên cho ô thứ 3
                    progressBar1.Maximum = listInformationFacebook.Count; // Set thông số cho processBar bằng số lượng item
                    foreach (var item in listInformationFacebook)
                    {
                        ListViewItem listview; // khởi tạo đối tượng listview để lấy dữ liệu từ mảng dữ liệu
                        string[] arrItem = item.Split('|'); // Cắt theo luật item1 | item2 | item3
                        listview = new ListViewItem(arrItem); // Nhét mảng vào trong ListViewItem
                        listView1.Items.Add(listview); // Nhét ListViewItem vào control ListView
                        progressBar1.Value += 1; // Tăng processbar sau mỗi vòng lặp
                    }
                }

Vậy là xong ví dụ nhỏ. Nếu các bạn có câu hỏi thì cmt ở dưới. Nếu hay thì like không thì chia sẻ cho bạn bè các bạn cùng nhau học tập.

Source code: https://drive.google.com/file/d/0B5ABUSGfAEUbTlctVmhabzdrdHc/view?usp=sharing
File Text: https://drive.google.com/file/d/0B5ABUSGfAEUbaEluS0NkVklNeTg/view?usp=sharing



Saturday, July 23, 2016

Sự khác biệt giữa String và string trong C#

Sự khác biệt giữa String và string trong C#


- Đặt vấn đề : 
Ta có 2 loại như sau:
string s = "Hello world!";
String S = "Hello world!";
Vậy ta thấy các sử dụng của chúng không có gì khác nhau là mấy .Cách sử dụng và sự khác nhau của string và String trong C# là gì ??
Sự khác biệt giữa String và string trong C#
Sự khác biệt giữa String và string trong C#

string là một các gọi khác trong C# củaSystem.String. Vì vậy về mặt kỹ thuật, sẽ không có sự khác nhau. Nó nhìn giống như kiểu int và System.Int32.
- Đây là những kiểu tham chiếu tới nhau được coi là tương đương với nhau:
object:  System.Object
string:  System.String
bool:    System.Boolean
byte:    System.Byte
sbyte:   System.SByte
short:   System.Int16
ushort:  System.UInt16
int:     System.Int32
uint:    System.UInt32
long:    System.Int64
ulong:   System.UInt64
float:   System.Single
double:  System.Double
decimal: System.Decimal
char:    System.Char

Saturday, July 9, 2016

Facebook Auto Beta Tools - Bản Beta CuongVizut Dev

Facebook Auto Beta Tools - Bản Beta CuongVizut Dev

Facebook Auto Beta Tools - Bản Beta CuongVizut Dev
Facebook Auto Beta Tools - Bản Beta CuongVizut Dev

     Đây là bản beta với các chức năng như :


  1. GET thông tin tài khoản
  2. GET ID Friends
  3. GET Accesstoken tài khoản
  4. Mời bạn bè like page
  5. Mời bạn bè tham gia nhóm
  6. Auto kết bạn tăng friends list.
  7. Xóa bạn hàng loạt
  8. Xóa theo dõi hàng loạt


      Chức năng Auto comment do chưa có thời gian nên chưa thể publish cho các bạn được nên tạm thời các chức năng kia mình dùng rất OK.
Facebook Auto Beta Tools
Facebook Auto Beta Tools

Hiện tại chương trình còn một số lỗi mình chưa tìm ra do đây là bản beta thử nghiệm, sang phiên bản tới vào cuối tuần sau mình sẽ update fix lỗi các bạn. Để tải chương trình về dùng thử bạn vui lòng ấn like page https://www.facebook.com/laptrinh24h/ và mời tất cả mọi người like page sau đó chụp ảnh gửi qua message fb mình sẽ gửi link cho các bạn tải. Xin lỗi vì sự bất tiện này nhưng đây coi như là 1 phần công sức để mình suy nghĩ và tạo phần mềm hi vọng các bạn vui lòng hợp tác. Chúc các bạn 1 ngày làm việc tốt lành.