Archive for April, 2010

Icon using in Google Map API


When I created my own map service, I couldn’t find a list of all icons, such as “traffic”, “start”, “end”, etc…
So I decided to gather all of them in one place for future generations 🙂

Images used to construct map controls

panning

http://www.google.com/mapfiles/center.png

http://www.google.com/mapfiles/east.png

http://www.google.com/mapfiles/west.png

http://www.google.com/mapfiles/north.png

http://www.google.com/mapfiles/south.png

http://www.google.com/mapfiles/panshadow.png

zoom

http://www.google.com/mapfiles/zoom-plus.png

http://www.google.com/mapfiles/zoom-minus.png

http://www.google.com/mapfiles/slider.png

Mini versions

panning

http://www.google.com/mapfiles/east-mini.png

http://www.google.com/mapfiles/west-mini.png

http://www.google.com/mapfiles/north-mini.png

http://www.google.com/mapfiles/south-mini.png

zoom

http://www.google.com/mapfiles/zoom-plus-mini.png

http://www.google.com/mapfiles/zoom-minus-mini.png

Slider

http://www.google.com/mapfiles/dslidertop.png

http://www.google.com/mapfiles/dsliderbar.png

http://www.google.com/mapfiles/dsliderbottom.png

http://www.google.com/mapfiles/dslidertopshadow.png

http://www.google.com/mapfiles/dsliderbarshadow.png

http://www.google.com/mapfiles/dsliderbottomshadow.png

Constructing scale

http://www.google.com/mapfiles/topbar.png

http://www.google.com/mapfiles/bottombar.png

http://www.google.com/mapfiles/horibar400.png

Markers

http://www.google.com/mapfiles/marker.png

http://www.google.com/mapfiles/dd-start.png

http://www.google.com/mapfiles/dd-end.png

http://www.google.com/mapfiles/markerA.png

…                                                     ….

http://www.google.com/mapfiles/markerZ.png

http://www.google.com/mapfiles/shadow50.png

http://maps.google.com/mapfiles/arrow.png

http://maps.google.com/mapfiles/arrowshadow.png

Info Window

http://maps.google.com/mapfiles/iw_nw.png

http://maps.google.com/mapfiles/iw_ne.png

http://maps.google.com/mapfiles/iw_sw.png

http://maps.google.com/mapfiles/iw_tap.png

http://maps.google.com/mapfiles/close.gif

Direction indicators

The number indicates the rotation angle in degrees. Only multiples of 3 are available. For angles in the range 120-357, subtract 120 or 240.

http://maps.google.com/mapfiles/dir_0.png


http://maps.google.com/mapfiles/dir_3.png
http://maps.google.com/mapfiles/dir_12.png
Walking directions – the same, but image names are dir_walk_X.png

Powered by Google

–  http://maps.google.com/mapfiles/poweredby.png

Tiles

http://maps.google.com/mapfiles/water.gif
(Used instead of a real tile when the entire map tile is water)

Screen markers

http://labs.google.com/ridefinder/images/mm_20_purple.png

http://labs.google.com/ridefinder/images/mm_20_yellow.png

http://labs.google.com/ridefinder/images/mm_20_blue.png

http://labs.google.com/ridefinder/images/mm_20_white.png

http://labs.google.com/ridefinder/images/mm_20_green.png

http://labs.google.com/ridefinder/images/mm_20_red.png

http://labs.google.com/ridefinder/images/mm_20_black.png

http://labs.google.com/ridefinder/images/mm_20_orange.png

http://labs.google.com/ridefinder/images/mm_20_gray.png

http://labs.google.com/ridefinder/images/mm_20_brown.png

http://labs.google.com/ridefinder/images/mm_20_shadow.png

Advertisements

Comments off

Update only Xml node (PHP5)


Since this is XML you may want to consider using PHP’s Dom class (not
Dom XML) to do the updating.

Assuming you have this file: book.xml

<sample>
<exo id=”1″ value=”Test” />
<exo id=”2″ value=”Test2″ />
</sample>

This example code will search for all the tags with ‘exo’ and change
the one whose id==’1′. It will then write back the file.

<?php
$dom=new DOMDocument();
$dom->load(‘book.xml’);
$dom->formatOutput = true;
echo $dom->saveXML(); // show before file
$allnodes = $dom->getElementsByTagName(‘exo’);
foreach ($allnodes as $node) {
if ($node->nodeName==’exo’ and $node->getAttribute(‘id’)==’1′) {
$val=$node->getAttribute(‘value’) . ‘ updated’;
$node->setAttribute ( ‘value’, $val );
}
}
echo $dom->saveXML(); //show after file
$dom->save(‘book.xml’);
exit;
?>

Comments off

Microsoft Office Visio 2007


Office Visio 2007 được cung cấp với 2 phiên bản độc lập: Office Visio Professional và Office Visio Standard. Office Visio Standard 2007 có các chức năng cơ bản giống với Visio Professional 2007 và bao gồm một tập hợp các chức năng và mẫu của nó. Office Visio Professional 2007 cung cấp các chức năng nâng cao, như kết nối dữ liệu và chức năng hình tượng, mà Office Visio Standard 2007 không có.

Hình tượng hóa các thông tin phức tạp để dễ hiểu hơn

Office Visio 2007 cung cấp hàng loạt mẫu – biểu đồ tiến trình doanh nghiệp, biểu đồ mạng, biểu đồ công việc, mô hình cơ sở dữ liệu, và biểu đồ phần mềm – bạn có thể sử dụng để hình tượng hóa và sắp xếp các quá trình trong doanh nghiệp, các đề án và tài nguyên, sơ đồ mạng và tối ưu hệ thống.

Dễ dàng hình tượng hóa các tiến trình, hệ thống và các thông tin phức tạp sử dụng các chức năng mới và được cải thiện trong Office Visio 2007:

* Khởi đầu nhanh chóng với các mẫu. Office Visio 2007 bao gồm các công cụ cụ thể để hỗ trợ các nhu cầu lập biểu đồ đa dạng của các chuyên gia IT và doanh nghiệp. Tạo hàng loạt biểu đồ với các mẫu mới, chẳng hạn như mẫu ITIL (Information Technology Infrastructure Library: Thư viện cơ sở hạ tầng công nghệ thông tin) và mẫu Value Stream Mapping trong Office Visio Professional 2007. Sử dụng các ký hiệu định nghĩa sẵn Microsoft SmartShapes và khả năng tìm kiếm mạnh mẽ để định vị các hình dạng đúng, cho dù nó được lưu trữ trong máy hay trên web
* Truy cập nhanh vào các mẫu bạn hay dùng. Trong cửa sổ Getting Started mới, tìm mẫu bạn cần bằng cách duyệt các thể loại mẫu đã được đơn giản hóa và sử dụng chức năng xem trước mẫu. Xác định mẫu bạn vừa mới dùng bằng cách sử dụng chức năng Recent Templates view mới trong cửa sổ Getting Started.
* Sáng tạo hơn bằng các biểu đồ mẫu. Tìm các biểu đồ mẫu mới dễ dàng hơn bằng cách mở cửa sổ Getting Started mới và sử dụng thể loại Samples mới trong OfficeVisio Professional 2007. Xem các biểu đồ mẫu được tích hợp với dữ liệu để giúp cho bạn tạo cho mình các biểu đồ của riêng mình, để nhận ra dữ liệu cung cấp nhiều ngữ cảnh cho nhiều loại biểu đồ như thế nào và để quyết định bạn sẽ dùng mẫu nào.
* Kết nối các hình khối mà không cần vẽ đường nối. Chức năng mới AutoConnect trong Office Visio 2007 kết nối các hình khối, phân phối chúng ngang nhau, và sắp xếp chúng cho bạn – chỉ với 1 click. Khi bạn di chuyển các hình khối đã kết nối, chúng vẫn được kết nối và các đường nối tự động định lại giữa các hình khối.

Khám phá thêm để nhận biết xu hướng và vấn đề và giải quyết

Sử dụng Office Visio Professional 2007 để làm cho biểu đồ của bạn trở nên “thông minh” hơn bằng cách nối chúng với dữ liệu để cung cấp các hình ảnh hoàn thiện hơn của tiến trình, đề án, hay hệ thống. Khám phá các thông tin một cách hình tượng để nhận biết các xu hướng chính, các vấn đề và ngoại lệ và sau đó bàn hướng giải quyết. Phân tích, tìm hiểu kỹ và tạo nhiều cái nhìn khác nhau về dữ liệu doanh nghiệp để hiểu sâu hơn.

* Dễ dàng kết nối dữ liệu vào biểu đồ và kết nối dữ liệu vào hình khối. Tự động kết nối biểu đồ vào 1 hay nhiều nguồn dữ liệu, như Microsoft Office Excel 2007 spreadsheets hay cơ sở dữ liệu Microsoft Office Access 2007, bằng cách sử dụng chức năng mới Data Link trong Office Visio Professional 2007. Tiết kiệm thời gian liên kết dữ liệu với hình khối bằng cách sử dụng phương pháp kết nối mới, trực quan hơn, xác định thuộc tính mỗi hình khối ( cũng được biết đến như dữ liệu hình khối) với thông số của dữ liệu. Chẳng hạn, kết nối mọi hình khối trong biểu đồ vào các hàng dữ liệu từ các nguồn dữ liệu đã được kết nối bằng cách sử dụng Automatic Link Wizard.
* Hiển thị dữ liệu một cách thu hút hơn trong biểu đồ. Dễ dàng thể hiện dữ liệu được kết nối với hình khối một cách thu hút bằng cách sử dụng chức năng mới Data Graphics trong OfficeVisio Professional 2007 để chọn từ nhiều tùy chọn định dạng dữ liệu. Chỉ với 1 click, hiển thị vùng dữ liệu như các chú thích gần các hình khối, vị trí trong khung ở dưới hình khối, và vùng dữ liệu trực tiếp trên hay bên cạnh hình khối.
* Tự động làm mới dữ liệu trong biểu đồ. Chức năng mới Refresh Data trong Office Visio Professional 2007 tự động làm mới mọi dữ liệu trong biểu đồ của bạn do đó bạn không cần phải làm thủ công. Nếu có mâu thuẫn giữa các dữ liệu, bạn có thể giải quyết một cách dễ dàng bằng cách sử dụng khung task Refresh Conflicts, cũng có trong OfficeVisio Professional 2007.
* Hình tượng hóa dữ liệu doanh nghiệp. Khám phá dữ liệu doanh nghiệp mà thường được hiển thị bình thường dưới dạng text và bảng tĩnh bằng cách sử dụng PivotDiagrams. Tạo nhiều góc nhìn khác nhau cho các dữ liệu giống nhau để hiểu đầy đủ hơn các vấn đề.
* Báo cáo các thông tin về đề án một cách hình tượng. Office Visio 2007 là một công cụ không thể thiếu để hình tượng hóa các thông tin dự án phức tạp. Dễ dàng tạo báo cáo trực tiếp từ Microsoft Office Project và Microsoft Office SharePoint Server, theo dõi các task trong dự án, người sở hữu, vai trò, trách nhiệm và mô tả cấu trúc của các dự án phức tạp. Tự động chỉnh sửa báo cáo khi thông tin về dự án thay đổi.

Truyền đạt sử dụng biểu đồ có thể chia sẻ với lượng khán giả đông đảo

Truyền đạt thông tin sử dụng biểu đồ Visio để tối ưu hóa ảnh hưởng của nó theo cách mà nếu chỉ có từ ngữ và con số thì không thể làm được. Sau đó chia sẻ biểu đồ Visio chuyên nghiệp của bạn với người khác, ngay cả những người không có Visio.

Truyền đạt thông tin hiệu quả hơn và theo nhiều cách hơn với một lượng khán giả đông hơn bằng cách sử dụng các tính năng mới và được cải thiện trong Office Visio 2007:

* Thiết kế các biểu đồ chuyên nghiệp. Chức năng Theme mới trong Office Visio 2007 giúp dễ dàng định dạng màu và hiệu ứng (text, đường thẳng, tô màu, tạo bóng và đinh dạng đường nối) trong toàn bộ biểu đồ chỉ với 1 click. Office Visio 2007 thậm chí sử dụng bảng màu giống với các chương trình 2007 Microsoft Office khác, do đó bạn có thể dễ dàng thiết kế các biểu đồ Visio chuyên nghiệp phù hợp với bài thuyết trình và tài liệu của bạn. Tạo các dòng công việc động với các hình khối 3 chiều mới, được thiết kế cùng với chức năng Theme.
* Có được một lượng khán giả đông hơn… Lưu biểu đồ Visio dưới định dạng PDF hay XPS để tạo cho chúng khả năng di chuyển và để đạt được một lượng khán giả đông hơn. Xem biểu đồ Visio đính kèm trong Microsoft Office Outlook 2007.

Bạn có thể lưu dứoi dạng file PDF hay XPS từ một chương trình hệ thống 2007 Microsoft Office chỉ sau khi bạn cài đặt một phần mở rộng. Để biết thêm chi tiết, xem Install và sử dụng PDF hay XPS add-in.
* Chia sẻ biểu đồ với người khác. Lưu biểu đồ của bạn dưới dạng web đầy đủ với các công cụ điều khiển, xem dữ liệu khối, báo cáo, lựa chọn định dạng ảnh, và tùy chọn giao diện. Trong mạng intranets và extranets, bất cứ người nào sử dụng Visio Viewer with Windows Internet Explorer có thể xem biểu đồ trong Internet Explorer.
* Cộng tác sử dụng Microsoft Windows SharePoint Services. Chức năng chia sẻ không gian làm việc hỗ trợ sự cộng tác với Microsoft Windows SharePoint Services. Biểu đồ Visio lưu trong Windows SharePoint Services sites có thể được mở trực tiếp trong Office Visio 2007 từ 1 site, và thậm chí có thể nhập vào và xuất ra từ Office Visio 2007. Khi 1 biểu đồ được mở trong Windows SharePoint Services site, Office Visio 2007 mở 1 khung task Shared Workspace chứa hầu hết các thông tin trong không gian làm việc, bao gồm các file khác, thành viên, công việc và đường dẫn.
* Cộng tác trên cùng một biểu đồ Visio. Với chức năng Track Markup, nhiều người có thể cộng tác trong cùng một biểu đồ Visio. Thường dùng để xem lại 1 biểu đồ và kết hợp các phản hồi, Track Markup giúp làm cho các đóng góp của các người tham gia trở nên rõ ràng hơn cho các người khác và cho ngườ cuối cùng kết hợp các thông tin phản hồi trong biểu đồ.

Tùy biến và mở rộng Office Visio 2007 để đáp ứng các nhu cầu khác

Mở rộng Office Visio 2007 theo cách lập trình hay bằng cách tích hợp nó với các ứng dụng khác để đáp ứng các nhu cầu cụ thể của doanh nghiệp của bạn hay những yêu cầu khắt khe của doanh nghiệp. Phát triển các giải pháp và hình khối kết nối dữ liệu tùy biến của bạn, hay sử dụng chúng từ Visio Solution Providers.

Tùy biến và mở rộng Office Visio 2007 bằng các chức năng mới và được cải thiện:

* Lập kế hoạch, phân tích và hình tượng hóa các giải pháp của bạn. Hình tượng hóa các giải pháp tùy chọn với biểu đồ Office Visio 2007 , như Unified Modeling Language (UML), dòng dữ liệu, và biểu đồ giao diện người dùng Microsoft Windows, bằng cách sử dụng mẫu trong khu vực Software and Database của Office Visio Professional 2007.
* Xây dựng các giải pháp mạnh mẽ. Gói phần mềm Office Visio 2007 software development kit (SDK) có thể giúp các nhà phát triển Visio xây dựng chương trình với Office Visio 2007. Gói phần mềm bao gồm các mẫu, công cụ và tài liệu nhiều hơn để đơn giản hóa và tăng tốc sự phát triển của các ứng dụng tùy biến. Gói phần mềm cung cấp một tập hợp các chức năng, lớp và thủ tục có thể tái sử dụng cho các công việc phát triển thường dùng nhất trong Office Visio 2007 và hỗ trợ hàng loạt các ngôn ngữ phát triển, gồm Microsoft Visual Basic, Microsoft Visual Basic .NET, Microsoft Visual C# .NET, và Microsoft Visual C++.
* Thêm chức năng lập biểu đồ Visio vào bất cứ ngữ cảnh hay chương trình nào. Với Office Visio 2007 và Visio Drawing Control, tạo các giải pháp kết nối dữ liệu làm cho việc kết nối và hiển thị dữ liệu trong bất cứ hoàn cảnh nào trở nên dễ dàng hơn. Sử dụng Visio Drawing Control, các nhà phát triển có thể nhúng và lập trình môi trường đồ họa Visio trong các ứng dụng khác; tạo cơ hội mới cho các giải pháp tích hợp, làm cho việc tích hợp sức mạnh của Office Visio 2007 vào trong bất kỳ một ứng dụng nào trở nên dễ dàng hơn. Bởi vì Visio Drawing Control có thể được tích hợp với một giao diện người dùng của ứng dụng “chủ”, các nhà phát triển có thể tận dụng khả năng đồ họa của Visio như là một cách tiếp cận trơn tru nhất đến ứng dụng của họ mà không cần phải tự mình phát triển một chức năng tương tự.
* Tận dụng giải pháp “lái” dữ liệu mới và các chức năng mới trong Office Visio 2007. Bạn có thể điều khiển những chức năng mới trong Microsoft Office Visio 2007, bao gồm kết nối đến với nguồn dữ liệu, nối hình khối với dữ liệu, hiển thị dữ liệu đã nối qua hình ảnh, kết nối hình khối với nhau tự động (AutoConnect), giám sát và lọc các hoạt động kéo chuột, và ứng dụng màu và hiệu ứng theme. Mỗi chức năng có 1 giao diện lập trình ứng dụng liên kết làm cho việc điều khiển các chức năng bằng lập trình và các vật thể và “thành viên” kết nối với nó trong mô hình vật thể của Visio là hoàn toàn có thể được. Bạn có thể tìm thêm thông tin về chức năng liên quan đế nhà phát triển trong Office Visio 2007 trong MSDN và trong gói phần mềm Office Visio 2007 Software Development Kit (SDK).

Comments off

Simple Echo Client-Server in C Sharp


Lâu lâu không động đến lập trình socket, giờ nghịch chút đồng thời tìm hiểu thêm về C# luôn vậy :cheers:
Bắt đầu với chương trình Echo server theo mô hình Client-server cho đơn giản :D
server(Program.cs)

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;


namespace SimpleServer
{
    class Program
    {
        static void Main(string[] args)
        {
               int recv;
   byte[] data = new byte[1024];
   IPEndPoint ipep = new IPEndPoint(IPAddress.Any,
               9050);
   Socket newsock = new
     Socket(AddressFamily.InterNetwork,
           SocketType.Stream, ProtocolType.Tcp);
   newsock.Bind(ipep);
   newsock.Listen(10);
   Console.WriteLine("Waiting for a client...");
   Socket client = newsock.Accept();
   IPEndPoint clientep =
          (IPEndPoint)client.RemoteEndPoint;
   Console.WriteLine("Connected with {0} at port {1}",
           clientep.Address, clientep.Port);
  
   string welcome = "Welcome to my test server";
   data = Encoding.ASCII.GetBytes(welcome);
   client.Send(data, data.Length,
            SocketFlags.None);
   while(true)
   {
     data = new byte[1024];
     recv = client.Receive(data);
     if (recv == 0)
      break;
   
     Console.WriteLine(
         Encoding.ASCII.GetString(data, 0, recv));
     client.Send(data, recv, SocketFlags.None);
   }
   Console.WriteLine("Disconnected from {0}",
            clientep.Address);
   client.Close();
   newsock.Close();
  

        }
    }
}

Client(Program.cs)

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;


namespace SimpleClient
{
    class Program
    {
   static void Main(string[] args)
        {
   byte[] data = new byte[1024];
   string input, stringData;
   IPEndPoint ipep = new IPEndPoint(
           IPAddress.Parse("127.0.0.1"), 9050);
   Socket server = new Socket(AddressFamily.InterNetwork,
           SocketType.Stream, ProtocolType.Tcp);
   try
   {
     server.Connect(ipep);
   } catch (SocketException e)
   {
     Console.WriteLine("Unable to connect to server.");
     Console.WriteLine(e.ToString());
     return;
   }
   int recv = server.Receive(data);
   stringData = Encoding.ASCII.GetString(data, 0, recv);
   Console.WriteLine(stringData);
   while(true)
   {
     input = Console.ReadLine();
     if (input == "exit")
      break;
     server.Send(Encoding.ASCII.GetBytes(input));
     data = new byte[1024];
     recv = server.Receive(data);
     stringData = Encoding.ASCII.GetString(data, 0, recv);
     Console.WriteLine(stringData);
   }
   Console.WriteLine("Disconnecting from server...");
   server.Shutdown(SocketShutdown.Both);
   server.Close();
  }

    }
}

Ta cod thể chạy 2 chương trình để thử hoặc chạy server và test kết nối dùng giao thức telnet qua cửa sổ cmd
qua cổng 9050

Comments off

Connecting to MySQL Using Connector/NET


25.2.5.1.1. Introduction

All interaction between a .NET application and the MySQL server is routed through a MySqlConnection object. Before your application can interact with the server, a MySqlConnection object must be instanced, configured, and opened.

Even when using the MySqlHelper class, a MySqlConnection object is created by the helper class.

In this section, we will describe how to connect to MySQL using the MySqlConnection object.

25.2.5.1.2. Creating a Connection String

The MySqlConnection object is configured using a connection string. A connection string contains sever key/value pairs, separated by semicolons. Each key/value pair is joined with an equals sign.

The following is a sample connection string:

    Server=127.0.0.1;Uid=root;Pwd=12345;Database=test;

In this example, the MySqlConnection object is configured to connect to a MySQL server at 127.0.0.1, with a username of root and a password of 12345. The default database for all statements will be the test database.

The following options are typically used (a full list of options is available in the API documentation for Sección 25.2.3.3.15, “ConnectionString”):

  • Server: The name or network address of the instance of MySQL to which to connect. The default is localhost. Aliases include host, Data Source, DataSource, Address, Addr and Network Address.
  • Uid: The MySQL user account to use when connecting. Aliases include User Id, Username and User name.
  • Pwd: The password for the MySQL account being used. Alias Password can also be used.
  • Database: The default database that all statements are applied to. Default is mysql. Alias Initial Catalog can also be used.
  • Port: The port MySQL is using to listen for connections. Default is 3306. Specify -1 for this value to use a named-pipe connection.
25.2.5.1.3. Opening a Connection

Once you have created a connection string it can be used to open a connection to the MySQL server.

The following code is used to create a MySqlConnection object, assign the connection string, and open the connection.

Visual Basic Example

Dim conn As New MySql.Data.MySqlClient.MySqlConnection
Dim myConnectionString as String

myConnectionString = "server=127.0.0.1;" _
            & "uid=root;" _
            & "pwd=12345;" _
            & "database=test;"

Try
  conn.ConnectionString = myConnectionString
  conn.Open()

Catch ex As MySql.Data.MySqlClient.MySqlException
  MessageBox.Show(ex.Message)
End Try

C# Example

MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;
    
myConnectionString = "server=127.0.0.1;uid=root;" +
    "pwd=12345;database=test;";
  
try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection();
    conn.ConnectionString = myConnectionString;
    conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
    MessageBox.Show(ex.Message);
}

You can also pass the connection string to the constructor of the MySqlConnection class:

Visual Basic Example

Dim myConnectionString as String

myConnectionString = "server=127.0.0.1;" _
              & "uid=root;" _
              & "pwd=12345;" _
              & "database=test;" 

Try
    Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
    conn.Open()
Catch ex As MySql.Data.MySqlClient.MySqlException
   MessageBox.Show(ex.Message)
End Try

C# Example

MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

myConnectionString = "server=127.0.0.1;uid=root;" +
    "pwd=12345;database=test;";

try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
    conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
    MessageBox.Show(ex.Message);
}

Once the connection is open it can be used by the other Connector/NET classes to communicate with the MySQL server.

25.2.5.1.4. Handling Connection Errors

Because connecting to an external server is unpredictable, it is important to add error handling to your .NET application. When there is an error connecting, the MySqlConnection class will return a MySqlException object. This object has two properties that are of interest when handling errors:

  • Message: A message that describes the current exception.
  • Number: The MySQL error number.

When handling errors, you can your application’s response based on the error number. The two most common error numbers when connecting are as follows:

  • 0: Cannot connect to server.
  • 1045: Invalid username and/or password.

The following code shows how to adapt the application’s response based on the actual error:

Visual Basic Example

Dim myConnectionString as String

myConnectionString = "server=127.0.0.1;" _
          & "uid=root;" _
          & "pwd=12345;" _
          & "database=test;" 

Try
    Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
    conn.Open()
Catch ex As MySql.Data.MySqlClient.MySqlException
    Select Case ex.Number
        Case 0
            MessageBox.Show("Cannot connect to server. Contact administrator")
        Case 1045
            MessageBox.Show("Invalid username/password, please try again")
    End Select
End Try

C# Example

MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

myConnectionString = "server=127.0.0.1;uid=root;" +  
    "pwd=12345;database=test;";

try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
    conn.Open();
}
    catch (MySql.Data.MySqlClient.MySqlException ex)
{
    switch (ex.Number)
    {
        case 0:
            MessageBox.Show("Cannot connect to server.  Contact administrator");
        case 1045:
            MessageBox.Show("Invalid username/password, please try again");
    }
}

Important: Note that if you are using multilanguage databases you must specify the character set in the connection string. If you do not specify the character set, the connection defaults to the latin1 charset. You can specify the character set as part of the connection string, for example:

MySqlConnection myConnection = new MySqlConnection("server=127.0.0.1;uid=root;" +
    "pwd=12345;database=test;Charset=latin1;");

Comments off

MySqlConnection


25.2.3.3. MySqlConnection

Represents an open connection to a MySQL Server database. This class cannot be inherited.

A MySqlConnection object represents a session to a MySQL Server data source. When you create an instance of MySqlConnection, all properties are set to their initial values. For a list of these values, see the MySqlConnection constructor.

If the MySqlConnection goes out of scope, it is not closed. Therefore, you must explicitly close the connection by calling MySqlConnection.Close or MySqlConnection.Dispose.

Examples

The following example creates a MySqlCommand and a MySqlConnection. The MySqlConnection is opened and set as the MySqlCommand.Connection for the MySqlCommand. The example then calls MySqlCommand.ExecuteNonQuery, and closes the connection. To accomplish this, the ExecuteNonQuery is passed a connection string and a query string that is a SQL INSERT statement.

Visual Basic example:

  Public Sub InsertRow(myConnectionString As String)
    ' If the connection string is null, use a default.
    If myConnectionString = "" Then
      myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"
    End If
    Dim myConnection As New MySqlConnection(myConnectionString)
    Dim myInsertQuery As String = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)"
    Dim myCommand As New MySqlCommand(myInsertQuery)
    myCommand.Connection = myConnection
    myConnection.Open()
    myCommand.ExecuteNonQuery()
    myCommand.Connection.Close()
  End Sub

C# example:

  public void InsertRow(string myConnectionString)
  {
    // If the connection string is null, use a default.
    if(myConnectionString == "")
    {
      myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass";
    }
    MySqlConnection myConnection = new MySqlConnection(myConnectionString);
    string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)";
    MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
    myCommand.Connection = myConnection;
    myConnection.Open();
    myCommand.ExecuteNonQuery();
    myCommand.Connection.Close();
  }
25.2.3.3.1. Class MySqlConnection Constructor (Default)

Initializes a new instance of the MySqlConnection class.

When a new instance of MySqlConnection is created, the read/write properties are set to the following initial values unless they are specifically set using their associated keywords in the ConnectionString property.

Properties Initial Value
ConnectionString empty string (“”)
ConnectionTimeout 15
Database empty string (“”)
DataSource empty string (“”)
ServerVersion empty string (“”)

You can change the value for these properties only by using the ConnectionString property.

Examples

Overload methods for MySqlConnection

Initializes a new instance of the MySqlConnection class.

25.2.3.3.2. Class MySqlConnection Constructor Form 1

Initializes a new instance of the MySqlConnection class when given a string containing the connection string.

When a new instance of MySqlConnection is created, the read/write properties are set to the following initial values unless they are specifically set using their associated keywords in the ConnectionString property.

Properties Initial Value
ConnectionString empty string (“”)
ConnectionTimeout 15
Database empty string (“”)
DataSource empty string (“”)
ServerVersion empty string (“”)

You can change the value for these properties only by using the ConnectionString property.

Examples

Parameters: The connection properties used to open the MySQL database.

25.2.3.3.3. Open

Opens a database connection with the property settings specified by the ConnectionString.

Exception: Cannot open a connection without specifying a data source or server.

Exception: A connection-level error occurred while opening the connection.

The MySqlConnection draws an open connection from the connection pool if one is available. Otherwise, it establishes a new connection to an instance of MySQL.

Examples

The following example creates a MySqlConnection, opens it, displays some of its properties, then closes the connection.

Visual Basic example:

Public Sub CreateMySqlConnection(myConnString As String)
    Dim myConnection As New MySqlConnection(myConnString)
    myConnection.Open()
    MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _
    + ControlChars.Cr + "State: " + myConnection.State.ToString())
    myConnection.Close()
End Sub

C# example:

public void CreateMySqlConnection(string myConnString)
{
  MySqlConnection myConnection = new MySqlConnection(myConnString);
  myConnection.Open();
  MessageBox.Show("ServerVersion: " + myConnection.ServerVersion +
          "\nState: " + myConnection.State.ToString());
  myConnection.Close();
}
25.2.3.3.4. Database

Gets the name of the current database or the database to be used after a connection is opened.

Returns: The name of the current database or the name of the database to be used after a connection is opened. The default value is an empty string.

The Database property does not update dynamically. If you change the current database using a SQL statement, then this property may reflect the wrong value. If you change the current database using the ChangeDatabase method, this property is updated to reflect the new database.

Examples

The following example creates a MySqlConnection and displays some of its read-only properties.

Visual Basic example:

Public Sub CreateMySqlConnection()
  Dim myConnString As String = _
    "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass"
  Dim myConnection As New MySqlConnection( myConnString )
  myConnection.Open()
  MessageBox.Show( "Server Version: " + myConnection.ServerVersion _
    + ControlChars.NewLine + "Database: " + myConnection.Database )
  myConnection.ChangeDatabase( "test2" )
  MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion _
    + ControlChars.NewLine + "Database: " + myConnection.Database )
  myConnection.Close()
End Sub

C# example:

public void CreateMySqlConnection()
{
  string myConnString =
    "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass";
  MySqlConnection myConnection = new MySqlConnection( myConnString );
  myConnection.Open();
  MessageBox.Show( "Server Version: " + myConnection.ServerVersion
    + "\nDatabase: " + myConnection.Database );
  myConnection.ChangeDatabase( "test2" );
  MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion
    + "\nDatabase: " + myConnection.Database );
  myConnection.Close();
}
25.2.3.3.5. State

Gets the current state of the connection.

Returns: A bitwise combination of the System.Data.ConnectionState values. The default is Closed.

The allowed state changes are:

  • From Closed to Open, using the Open method of the connection object.
  • From Open to Closed, using either the Close method or the Dispose method of the connection object.

Examples

The following example creates a MySqlConnection, opens it, displays some of its properties, then closes the connection.

Visual Basic example:

Public Sub CreateMySqlConnection(myConnString As String)
    Dim myConnection As New MySqlConnection(myConnString)
    myConnection.Open()
    MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _
    + ControlChars.Cr + "State: " + myConnection.State.ToString())
    myConnection.Close()
End Sub

C# example:

public void CreateMySqlConnection(string myConnString)
{
  MySqlConnection myConnection = new MySqlConnection(myConnString);
  myConnection.Open();
  MessageBox.Show("ServerVersion: " + myConnection.ServerVersion +
          "\nState: " + myConnection.State.ToString());
  myConnection.Close();
}
25.2.3.3.6. ServerVersion

Gets a string containing the version of the MySQL server to which the client is connected.

Returns: The version of the instance of MySQL.

Exception: The connection is closed.

Examples

The following example creates a MySqlConnection, opens it, displays some of its properties, then closes the connection.

Visual Basic example:

Public Sub CreateMySqlConnection(myConnString As String)
    Dim myConnection As New MySqlConnection(myConnString)
    myConnection.Open()
    MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _
    + ControlChars.Cr + "State: " + myConnection.State.ToString())
    myConnection.Close()
End Sub

C# example:

public void CreateMySqlConnection(string myConnString)
{
  MySqlConnection myConnection = new MySqlConnection(myConnString);
  myConnection.Open();
  MessageBox.Show("ServerVersion: " + myConnection.ServerVersion +
          "\nState: " + myConnection.State.ToString());
  myConnection.Close();
}
25.2.3.3.7. Close

Closes the connection to the database. This is the preferred method of closing any open connection.

The Close method rolls back any pending transactions. It then releases the connection to the connection pool, or closes the connection if connection pooling is disabled.

An application can call Close more than one time. No exception is generated.

Examples

The following example creates a MySqlConnection, opens it, displays some of its properties, then closes the connection.

Visual Basic example:

Public Sub CreateMySqlConnection(myConnString As String)
    Dim myConnection As New MySqlConnection(myConnString)
    myConnection.Open()
    MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _
    + ControlChars.Cr + "State: " + myConnection.State.ToString())
    myConnection.Close()
End Sub

C# example:

public void CreateMySqlConnection(string myConnString)
{
  MySqlConnection myConnection = new MySqlConnection(myConnString);
  myConnection.Open();
  MessageBox.Show("ServerVersion: " + myConnection.ServerVersion +
          "\nState: " + myConnection.State.ToString());
  myConnection.Close();
}
25.2.3.3.8. CreateCommand

Creates and returns a MySqlCommand object associated with the MySqlConnection.

Returns: A MySqlCommand object.

25.2.3.3.9. BeginTransaction

Begins a database transaction.

Returns: An object representing the new transaction.

Exception: Parallel transactions are not supported.

This command is equivalent to the MySQL BEGIN TRANSACTION command.

You must explicitly commit or roll back the transaction using the MySqlTransaction.Commit or MySqlTransaction.Rollback method.

Note. If you do not specify an isolation level, the default isolation level is used. To specify an isolation level with the BeginTransaction method, use the overload that takes the iso parameter.

Examples

The following example creates a MySqlConnection and a MySqlTransaction. It also demonstrates how to use the BeginTransaction, a MySqlTransaction.Commit, and MySqlTransaction.Rollback methods.

Visual Basic example:

Public Sub RunTransaction(myConnString As String)
    Dim myConnection As New MySqlConnection(myConnString)
    myConnection.Open()

    Dim myCommand As MySqlCommand = myConnection.CreateCommand()
    Dim myTrans As MySqlTransaction

    ' Start a local transaction
    myTrans = myConnection.BeginTransaction()
    ' Must assign both transaction object and connection
    ' to Command object for a pending local transaction
    myCommand.Connection = myConnection
    myCommand.Transaction = myTrans

    Try
      myCommand.CommandText = "Insert into Test (id, desc) VALUES (100, 'Description')"
      myCommand.ExecuteNonQuery()
      myCommand.CommandText = "Insert into Test (id, desc) VALUES (101, 'Description')"
      myCommand.ExecuteNonQuery()
      myTrans.Commit()
      Console.WriteLine("Both records are written to database.")
    Catch e As Exception
      Try
        myTrans.Rollback()
      Catch ex As MySqlException
        If Not myTrans.Connection Is Nothing Then
          Console.WriteLine("An exception of type " + ex.GetType().ToString() + _
                            " was encountered while attempting to roll back the transaction.")
        End If
      End Try

      Console.WriteLine("An exception of type " + e.GetType().ToString() + _
                      "was encountered while inserting the data.")
      Console.WriteLine("Neither record was written to database.")
    Finally
      myConnection.Close()
    End Try
End Sub

C# example:

public void RunTransaction(string myConnString)
{
  MySqlConnection myConnection = new MySqlConnection(myConnString);
  myConnection.Open();
  MySqlCommand myCommand = myConnection.CreateCommand();
  MySqlTransaction myTrans;
  // Start a local transaction
  myTrans = myConnection.BeginTransaction();
  // Must assign both transaction object and connection
  // to Command object for a pending local transaction
  myCommand.Connection = myConnection;
  myCommand.Transaction = myTrans;
    try
    {
      myCommand.CommandText = "insert into Test (id, desc) VALUES (100, 'Description')";
      myCommand.ExecuteNonQuery();
      myCommand.CommandText = "insert into Test (id, desc) VALUES (101, 'Description')";
      myCommand.ExecuteNonQuery();
      myTrans.Commit();
      Console.WriteLine("Both records are written to database.");
    }
    catch(Exception e)
    {
      try
      {
        myTrans.Rollback();
      }
      catch (SqlException ex)
      {
        if (myTrans.Connection != null)
        {
          Console.WriteLine("An exception of type " + ex.GetType() +
                            " was encountered while attempting to roll back the transaction.");
        }
      }

      Console.WriteLine("An exception of type " + e.GetType() +
                        " was encountered while inserting the data.");
      Console.WriteLine("Neither record was written to database.");
    }
    finally
    {
      myConnection.Close();
    }
}
25.2.3.3.10. BeginTransaction1

Begins a database transaction with the specified isolation level.

Parameters: The isolation level under which the transaction should run.

Returns: An object representing the new transaction.

Exception: Parallel exceptions are not supported.

This command is equivalent to the MySQL BEGIN TRANSACTION command.

You must explicitly commit or roll back the transaction using the MySqlTransaction.Commit or MySqlTransaction.Rollback method.

Note. If you do not specify an isolation level, the default isolation level is used. To specify an isolation level with the BeginTransaction method, use the overload that takes the iso parameter.

Examples

The following example creates a MySqlConnection and a MySqlTransaction. It also demonstrates how to use the BeginTransaction, a MySqlTransaction.Commit, and MySqlTransaction.Rollback methods.

Visual Basic example:

Public Sub RunTransaction(myConnString As String)
    Dim myConnection As New MySqlConnection(myConnString)
    myConnection.Open()

    Dim myCommand As MySqlCommand = myConnection.CreateCommand()
    Dim myTrans As MySqlTransaction

    ' Start a local transaction
    myTrans = myConnection.BeginTransaction()
    ' Must assign both transaction object and connection
    ' to Command object for a pending local transaction
    myCommand.Connection = myConnection
    myCommand.Transaction = myTrans

    Try
      myCommand.CommandText = "Insert into Test (id, desc) VALUES (100, 'Description')"
      myCommand.ExecuteNonQuery()
      myCommand.CommandText = "Insert into Test (id, desc) VALUES (101, 'Description')"
      myCommand.ExecuteNonQuery()
      myTrans.Commit()
      Console.WriteLine("Both records are written to database.")
    Catch e As Exception
      Try
        myTrans.Rollback()
      Catch ex As MySqlException
        If Not myTrans.Connection Is Nothing Then
          Console.WriteLine("An exception of type " + ex.GetType().ToString() + _
                            " was encountered while attempting to roll back the transaction.")
        End If
      End Try

      Console.WriteLine("An exception of type " + e.GetType().ToString() + _
                      "was encountered while inserting the data.")
      Console.WriteLine("Neither record was written to database.")
    Finally
      myConnection.Close()
    End Try
End Sub

C# example:

public void RunTransaction(string myConnString)
{
  MySqlConnection myConnection = new MySqlConnection(myConnString);
  myConnection.Open();
  MySqlCommand myCommand = myConnection.CreateCommand();
  MySqlTransaction myTrans;
  // Start a local transaction
  myTrans = myConnection.BeginTransaction();
  // Must assign both transaction object and connection
  // to Command object for a pending local transaction
  myCommand.Connection = myConnection;
  myCommand.Transaction = myTrans;
    try
    {
      myCommand.CommandText = "insert into Test (id, desc) VALUES (100, 'Description')";
      myCommand.ExecuteNonQuery();
      myCommand.CommandText = "insert into Test (id, desc) VALUES (101, 'Description')";
      myCommand.ExecuteNonQuery();
      myTrans.Commit();
      Console.WriteLine("Both records are written to database.");
    }
    catch(Exception e)
    {
      try
      {
        myTrans.Rollback();
      }
      catch (SqlException ex)
      {
        if (myTrans.Connection != null)
        {
          Console.WriteLine("An exception of type " + ex.GetType() +
                            " was encountered while attempting to roll back the transaction.");
        }
      }

      Console.WriteLine("An exception of type " + e.GetType() +
                        " was encountered while inserting the data.");
      Console.WriteLine("Neither record was written to database.");
    }
    finally
    {
      myConnection.Close();
    }
}
25.2.3.3.11. ChangeDatabase

Changes the current database for an open MySqlConnection.

Parameters: The name of the database to use.

The value supplied in the database parameter must be a valid database name. The database parameter cannot contain a null value, an empty string, or a string with only blank characters.

When you are using connection pooling against MySQL, and you close the connection, it is returned to the connection pool. The next time the connection is retrieved from the pool, the reset connection request executes before the user performs any operations.

Exception: The database name is not valid.

Exception: The connection is not open.

Exception: Cannot change the database.

Examples

The following example creates a MySqlConnection and displays some of its read-only properties.

Visual Basic example:

Public Sub CreateMySqlConnection()
  Dim myConnString As String = _
    "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass"
  Dim myConnection As New MySqlConnection( myConnString )
  myConnection.Open()
  MessageBox.Show( "Server Version: " + myConnection.ServerVersion _
    + ControlChars.NewLine + "Database: " + myConnection.Database )
  myConnection.ChangeDatabase( "test2" )
  MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion _
    + ControlChars.NewLine + "Database: " + myConnection.Database )
  myConnection.Close()
End Sub

C# example:

public void CreateMySqlConnection()
{
  string myConnString =
    "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass";
  MySqlConnection myConnection = new MySqlConnection( myConnString );
  myConnection.Open();
  MessageBox.Show( "Server Version: " + myConnection.ServerVersion
    + "\nDatabase: " + myConnection.Database );
  myConnection.ChangeDatabase( "test2" );
  MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion
    + "\nDatabase: " + myConnection.Database );
  myConnection.Close();
}
25.2.3.3.12. StateChange

Occurs when the state of the connection changes.

The StateChange event fires whenever the State changes from closed to opened, or from opened to closed. StateChange fires immediately after the MySqlConnection transitions.

If an event handler throws an exception from within the StateChange event, the exception propagates to the caller of the Open or Close method.

The StateChange event is not raised unless you explicitly call Close or Dispose.

The event handler receives an argument of type System.Data.StateChangeEventArgs containing data related to this event. The following StateChangeEventArgs properties provide information specific to this event.

Property Description
System.Data.StateChangeEventArgs.CurrentState Gets the new state of the connection. The connection object will be in the new state already when the event is fired.
System.Data.StateChangeEventArgs.OriginalState Gets the original state of the connection.
25.2.3.3.13. InfoMessage

Occurs when MySQL returns warnings as a result of executing a command or query.

25.2.3.3.14. ConnectionTimeout

Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.

Exception: The value set is less than 0.

A value of 0 indicates no limit, and should be avoided in a MySqlConnection.ConnectionString because an attempt to connect will wait indefinitely.

Examples

The following example creates a MySqlConnection and sets some of its properties in the connection string.

Visual Basic example:

Public Sub CreateSqlConnection()
  Dim myConnection As New MySqlConnection()
  myConnection.ConnectionString = "Persist Security Info=False;Username=user;Password=pass;database=test1;server=localhost;Connect Timeout=30"
  myConnection.Open()
End Sub

C# example:

public void CreateSqlConnection()
{
  MySqlConnection myConnection = new MySqlConnection();
  myConnection.ConnectionString = "Persist Security Info=False;Username=user;Password=pass;database=test1;server=localhost;Connect Timeout=30";
  myConnection.Open();
}
25.2.3.3.15. ConnectionString

Gets or sets the string used to connect to a MySQL Server database.

The ConnectionString returned may not be exactly like what was originally set but will be indentical in terms of keyword/value pairs. Security information will not be included unless the Persist Security Info value is set to true.

You can use the ConnectionString property to connect to a database. The following example illustrates a typical connection string.

"Persist Security Info=False;database=MyDB;server=MySqlServer;user id=myUser;Password=myPass"

The ConnectionString property can be set only when the connection is closed. Many of the connection string values have corresponding read-only properties. When the connection string is set, all of these properties are updated, except when an error is detected. In this case, none of the properties are updated. MySqlConnection properties return only those settings contained in the ConnectionString.

To connect to a local machine, specify “localhost” for the server. If you do not specify a server, localhost is assumed.

Resetting the ConnectionString on a closed connection resets all connection string values (and related properties) including the password. For example, if you set a connection string that includes “Database= MyDb”, and then reset the connection string to “Data Source=myserver;User Id=myUser;Password=myPass”, the MySqlConnection.Database property is no longer set to MyDb.

The connection string is parsed immediately after being set. If errors in syntax are found when parsing, a runtime exception, such as ArgumentException, is generated. Other errors can be found only when an attempt is made to open the connection.

The basic format of a connection string consists of a series of keyword/value pairs separated by semicolons. The equal sign (=) connects each keyword and its value. To include values that contain a semicolon, single-quote character, or double-quote character, the value must be enclosed in double quotes. If the value contains both a semicolon and a double-quote character, the value can be enclosed in single quotes. The single quote is also useful if the value begins with a double-quote character. Conversely, the double quote can be used if the value begins with a single quote. If the value contains both single-quote and double-quote characters, the quote character used to enclose the value must be doubled each time it occurs within the value.

To include preceding or trailing spaces in the string value, the value must be enclosed in either single quotes or double quotes. Any leading or trailing spaces around integer, Boolean, or enumerated values are ignored, even if enclosed in quotes. However, spaces within a string literal keyword or value are preserved. Using .NET Framework version 1.1, single or double quotes may be used within a connection string without using delimiters (for example, Data Source= my’Server or Data Source= my”Server), unless a quote character is the first or last character in the value.

To include an equal sign (=) in a keyword or value, it must be preceded by another equal sign. For example, in the hypothetical connection string

"key==word=value"

the keyword is “key=word” and the value is “value”.

If a specific keyword in a keyword= value pair occurs multiple times in a connection string, the last occurrence listed is used in the value set.

Keywords are not case sensitive.

The following table lists the valid names for keyword values within the ConnectionString.

Name Default Description
Connect Timeout, Connection Timeout 15 The length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error.
Host, Server, Data Source, DataSource, Address, Addr, Network Address localhost The name or network address of the instance of MySQL to which to connect. Multiple hosts can be specified separated by &. This can be useful where multiple MySQL servers are configured for replication and you are not concerned about the precise server you are connecting to. No attempt is made by the provider to synchronize writes to the database so care should be taken when using this option. In Unix environment with Mono, this can be a fully qualified path to MySQL socket filename. With this configuration, the Unix socket will be used instead of TCP/IP socket. Currently only a single socket name can be given so accessing MySQL in a replicated environment using Unix sockets is not currently supported.
Ignore Prepare true When true, instructs the provider to ignore any calls to MySqlCommand.Prepare(). This option is provided to prevent issues with corruption of the statements when use with server side prepared statements. If you want to use server-side prepare statements, set this option to false. This option was added in Connector/NET 5.0.3.
Port 3306 The port MySQL is using to listen for connections. Specify -1 for this value to use a named pipe connection (Windows only). This value is ignored if Unix socket is used.
Protocol socket Specifies the type of connection to make to the server.Values can be: socket or tcp for a socket connection pipe for a named pipe connection unix for a Unix socket connection memory to use MySQL shared memory
CharSet, Character Set Specifies the character set that should be used to encode all queries sent to the server. Resultsets are still returned in the character set of the data returned.
Logging false When true, various pieces of information is output to any configured TraceListeners.
Allow Batch true When true, multiple SQL statements can be sent with one command execution. -Note- Starting with MySQL 4.1.1, batch statements should be separated by the server-defined seperator character. Commands sent to earlier versions of MySQL should be seperated with ‘;’.
Encrypt false For Connector/NET 5.0.3 and later, when true, SSL encryption is used for all data sent between the client and server if the server has a certificate installed. Recognized values are true, false, yes, and no. In versions before 5.0.3, this option had no effect.
Initial Catalog, Database mysql The name of the database to use intially
Password, pwd The password for the MySQL account being used.
Persist Security Info false When set to false or no (strongly recommended), security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state. Resetting the connection string resets all connection string values including the password. Recognized values are true, false, yes, and no.
User Id, Username, Uid, User name The MySQL login account being used.
Shared Memory Name MYSQL The name of the shared memory object to use for communication if the connection protocol is set to memory.
Allow Zero Datetime false True to have MySqlDataReader.GetValue() return a MySqlDateTime for date or datetime columns that have illegal values. False will cause a System.DateTime object to be returned for legal values and an exception will be thrown for illegal values.
Convert Zero Datetime false True to have MySqlDataReader.GetValue() and MySqlDataReader.GetDateTime() return DateTime.MinValue for date or datetime columns that have illegal values.
Old Syntax, OldSyntax false Allows use of ‘@’ symbol as a parameter marker. See MySqlCommand for more info. This is for compatibility only. All future code should be written to use the new ‘?’ parameter marker.
Pipe Name, Pipe mysql When set to the name of a named pipe, the MySqlConnection will attempt to connect to MySQL on that named pipe.This settings only applies to the Windows platform.

The following table lists the valid names for connection pooling values within the ConnectionString. For more information about connection pooling, see Connection Pooling for the MySql Data Provider.

Name Default Description
Connection Lifetime 0 When a connection is returned to the pool, its creation time is compared with the current time, and the connection is destroyed if that time span (in seconds) exceeds the value specified by Connection Lifetime. This is useful in clustered configurations to force load balancing between a running server and a server just brought online. A value of zero (0) causes pooled connections to have the maximum connection timeout.
Max Pool Size 100 The maximum number of connections allowed in the pool.
Min Pool Size 0 The minimum number of connections allowed in the pool.
Pooling true When true, the MySqlConnection object is drawn from the appropriate pool, or if necessary, is created and added to the appropriate pool. Recognized values are true, false, yes, and no.
Reset Pooled Connections, ResetConnections, ResetPooledConnections true Specifies whether a ping and a reset should be sent to the server before a pooled connection is returned. Not resetting will yeild faster connection opens but also will not clear out session items such as temp tables.
Cache Server Configuration, CacheServerConfiguration, CacheServerConfig false Specifies whether server variables should be updated when a pooled connection is returned. Turning this one will yeild faster opens but will also not catch any server changes made by other connections.

When setting keyword or connection pooling values that require a Boolean value, you can use ‘yes’ instead of ‘true’, and ‘no’ instead of ‘false’.

Note The MySql Data Provider uses the native socket protocol to communicate with MySQL. Therefore, it does not support the use of an ODBC data source name (DSN) when connecting to MySQL because it does not add an ODBC layer.

CAUTION In this release, the application should use caution when constructing a connection string based on user input (for example when retrieving user ID and password information from a dialog box, and appending it to the connection string). The application should ensure that a user cannot embed extra connection string parameters in these values (for example, entering a password as “validpassword;database=somedb” in an attempt to attach to a different database).

Examples

The following example creates a MySqlConnection and sets some of its properties

Visual Basic example:

  Public Sub CreateConnection()
    Dim myConnection As New MySqlConnection()
    myConnection.ConnectionString = "Persist Security Info=False;database=myDB;server=myHost;Connect Timeout=30;user id=myUser; pwd=myPass"
    myConnection.Open()
  End Sub 'CreateConnection

C# example:

  public void CreateConnection()
  {
    MySqlConnection myConnection = new MySqlConnection();
    myConnection.ConnectionString = "Persist Security Info=False;database=myDB;server=myHost;Connect Timeout=30;user id=myUser; pwd=myPass";
    myConnection.Open();
  }

Examples

The following example creates a MySqlConnection in Unix environment with Mono installed. MySQL socket filename used in this example is “/var/lib/mysql/mysql.sock”. The actual filename depends on your MySQL configuration.

Visual Basic example:

  Public Sub CreateConnection()
    Dim myConnection As New MySqlConnection()
    myConnection.ConnectionString = "database=myDB;server=/var/lib/mysql/mysql.sock;user id=myUser; pwd=myPass"
    myConnection.Open()
  End Sub 'CreateConnection

C# example:

  public void CreateConnection()
  {
    MySqlConnection myConnection = new MySqlConnection();
    myConnection.ConnectionString = "database=myDB;server=/var/lib/mysql/mysql.sock;user id=myUser; pwd=myPass";
    myConnection.Open();
  }

Comments off