Asp net with mysql database tutorial

This tutorial will teach you how to connect to MySQL from .NET Core using C#.

1. Install MySqlConnector

First, install the MySqlConnector NuGet package. From a command prompt, run:

dotnet add package MySqlConnector

Or right-click your project, choose Manage NuGet Packages…, in the Search box enter MySqlConnector, and install the package in your project.

2. Connection String

A typical connection string for MySQL is:

Server=YOURSERVER;User ID=YOURUSERID;Password=YOURPASSWORD;Database=YOURDATABASE

Replace the values in that string with the appropriate settings for your database. For more advanced settings, see Connection Options.

If you are using ASP.NET Core, your connection string will usually be stored in appsettings.json:

{
    ....
    "ConnectionStrings": {
        "Default": "Server=YOURSERVER;User ID=YOURUSERID;Password=YOURPASSWORD;Database=YOURDATABASE"
    }
}

3. Configure Service [ASP.NET Core]

If using ASP.NET Core, you will want to register a database connection in Startup.cs:

public void ConfigureServices[IServiceCollection services]
{
    // ...
    services.AddTransient[_ => new MySqlConnection[Configuration["ConnectionStrings:Default"]]];
}

4. Open and Use the Connection

In ASP.NET Core, the MySqlConnection object will be dependency-injected into your Controller class. For other kinds of projects, you may need to explicitly create the connection:

using var connection = new MySqlConnection[yourConnectionString];

You can then open the connection and execute a query:

await connection.OpenAsync[];

using var command = new MySqlCommand["SELECT field FROM table;", connection];
using var reader = await command.ExecuteReaderAsync[];
while [await reader.ReadAsync[]]
{
    var value = reader.GetValue[0];
    // do something with 'value'
}

  • Download source files - 4.88 Kb

Abstract

.NET is the new distributed computing platform developed by Microsoft and ASP.NET is its programming model for web development. I'm creating a Web Form with a DataGrid for data entry using C#. How can I make a DataGrid cell display a textbox for showing a list of products in all the rows. This solution will teach you how to use a MySQL database with ASP.NET. I have developed this sample with ASP.NET 1.1 using C# as the code-behind using MySQL 4.1. I think this will be a more useful article for beginners studying .NET. In this sample, I have taken the DataGrid control for demonstration. All the basic operations of the DataGrid are explained in this article.

Overview of the Solution

MySQL:

MySQL Server 4.0 laid the foundation for the new features implemented in MySQL 4.1, such as subqueries and Unicode support, which were desired by many of our customers. The server is available as a separate program for use in a client/server networked environment. It is also available as a library that can be embedded [linked] into standalone applications. Such applications can be used in isolation or in environments where no network is available. Clients can connect to a MySQL server using TCP/IP sockets on any platform. On Windows systems belonging the NT family [NT, 2000, XP, or 2003], clients can connect using named pipes. On UNIX systems, clients can connect using UNIX domain socket files.

In MySQL 4.1, we cannot write stored procedures, functions, or views. The following are sample SELECT, UPDATE, and DELETE queries in MySQL.

SELECT column_names from table_name [WHERE ...conditions];

UPDATE table_name SET column_names = ‘’ WHERE ...conditions;

DELETE FROM table_name WHERE ...conditions;

ODBC:

The Microsoft Open Database Connectivity [ODBC] interface is a C programming language interface that makes it possible for applications to access data from a variety of database management systems. The ODBC interface permits maximum interoperability — an application can access data in diverse DBMSs through a single interface. Furthermore, that application will be independent of any DBMS from which it accesses data. Users of the application can add software components called drivers, which interface between an application and a specific DBMS. Applications that use ODBC are responsible for any cross-database functionality. For example, ODBC is not a heterogeneous join engine, nor is it a distributed transaction processor. However, because it is DBMS-independent, it can be used to build such cross-database tools.

The following will explain to you the architecture of ODBC:

Namespace used for ODBC:

using System.Data.Odbc;

The System.Data.Odbc namespace is the .NET Framework Data Provider for ODBC.

The .NET Framework Data Provider for ODBC describes a collection of classes used to access an ODBC data source in the managed space. Using the OdbcDataAdapter class, you can fill a memory-resident DataSet, which you can use to query and update a data source.

Solution with Code

First, let us see how to connect ASP.NET with a MySQL database. The following code will explain how to connect with a MySQL 4.1 database:

private const string ConnStr = 
   "Driver={MySQL ODBC 3.51 Driver};Server=localhost;" + 
   "Database=test;uid=root;pwd=;option=3";


private void BindDataGrid[]
{
    using[OdbcConnection con = new OdbcConnection[ConnStr]]
    using[OdbcCommand cmd = 
          new OdbcCommand["SELECT * FROM Sample", con]]
    {
        con.Open[];
        DataGrid1.DataSource = cmd.ExecuteReader[
                    CommandBehavior.CloseConnection | 
                    CommandBehavior.SingleResult];
        DataGrid1.DataBind[];
    }
}

This snippet shows the code to bind data from a MySQL database to a DataGrid control. Each and every basic operation is written as a separate function. The following are the functions for the basic operations to be performed in the DataGrid:

private void InsertInfo[]
{
    if[CheckIsAddNameValid[]]
    {
        HtmlTable2.Visible = false;

        using[OdbcConnection con = new OdbcConnection[ConnStr]]
        using[OdbcCommand cmd = new OdbcCommand["INSERT INTO sample" + 
                                "[name, address] VALUES [?,?]", con]]
        {
            cmd.Parameters.Add["@name", OdbcType.VarChar, 
                               255].Value = TextBox3.Text.Trim[];
            cmd. Parameters.Add["@address", OdbcType.VarChar, 
                                255].Value = TextBox4.Text.Trim[];
        
            con.Open[];
            cmd.ExecuteNonQuery[];
            BindDataGrid[];
        }
    }
}



private void UpdateInfo[int id, string name, string address]
{
    using[OdbcConnection con = new OdbcConnection[ConnStr]]
    using[OdbcCommand cmd = new OdbcCommand["UPDATE sample " + 
                      "SET name = ?, address = ? WHERE ID = ?", con]]
    {
        cmd.Parameters.Add["@name", OdbcType.VarChar, 255].Value = name;
        cmd.Parameters.Add["@address", 
                       OdbcType.VarChar, 255].Value = address;
        cmd.Parameters.Add["@ID", OdbcType.Int].Value = id;
    
        con.Open[];
        cmd.ExecuteNonQuery[];
    }
}


private void DeleteInfo[int id]
{
    using[OdbcConnection con = new OdbcConnection[ConnStr]]
    using[OdbcCommand cmd = new OdbcCommand["DELETE " + 
                      "FROM sample WHERE ID = ?", con]]
    {
        cmd.Parameters.Add["@ID", OdbcType.Int].Value = id;
    
        con.Open[];
        cmd.ExecuteNonQuery[];
    }
}

The table design for this sample:

CREATE TABLE sample [ 
    id         int AUTO_INCREMENT NOT NULL,
    name       varchar[45] NOT NULL,
    address    varchar[45] NOT NULL,
    PRIMARY KEY[id]
]
GO

Details about the DataGrid:

The DataGrid control displays tabular data and optionally supports selecting, sorting, paging, and editing of data. By default, a DataGrid generates a BoundColumn for each field in the data source [AutoGenerateColumns=true]. Each field in the data is rendered in a separate column, in the order it occurs in the data. Field names appear in the grid's column headers, and values are rendered in text labels. A default format is applied to non-string values.

private void DataGrid1_UpdateCommand[object source, 
             System.Web.UI.WebControls.DataGridCommandEventArgs e]
{
    try
    {
        int cUsrID ;
        string strName;
        string strAddress;

        Literal ltID;
        TextBox txtTempName;
        TextBox txtTempAddress;

        ltID = [System.Web.UI.WebControls.Literal ] 
               e.Item.Cells[0].FindControl["Label"];
        cUsrID = Convert.ToInt32 [ltID.Text];

        txtTempName = [System.Web.UI.WebControls.TextBox]
                      e.Item.Cells[1].FindControl["TextBox1"];
        strName = txtTempName.Text;

        txtTempAddress = [System.Web.UI.WebControls.TextBox]
                          e.Item.Cells[2].FindControl["Textbox2"];
        strAddress = txtTempAddress.Text;
    
        UpdateInfo[cUsrID, strName, strAddress];

        DataGrid1.EditItemIndex = -1;
        BindDataGrid[];
    }
    catch[Exception ex]
    {
        
    }
}

Conclusion

After reading this article, you will have a basic knowledge about ODBC connections, DataGrids and most importantly about MySQL. I hope this article will be more useful for budding programmers.

Reference

  • Online MSDN library.

License


Written By

Chief Technology Officer at Zealots

 Australia

This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.


Comments and Discussions

You must Sign In to use this message board.

Last Visit: 31-Dec-99 18:00     Last Update: 3-Oct-22 23:03 Refresh 1

General   
News   
Suggestion   
Question   
Bug   
Answer   
Joke   
Praise   
Rant   
Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Can you use ASP net with MySQL?

NET Core and MySQL are both free and open source technologies. The new ASP.NET Core can run on Linux and in Linux Containers, and MySQL is one of the easiest databases to get started with. This makes the combination of ASP.NET Core and MySQL a pretty compelling combination.

Which database is best for ASP NET?

SQL Server is the most popular database when talking about ASP.NET Core since it's what Microsoft is also selling and also the first one that Entity Framework Core is developed for. It's not free mind you. You can now use SQL Server in Linux as Microsoft has developed a Linux version that you can use.

Can C# work with MySQL?

Connect C# to MySQL All the communication between a C# application and the MySQL server is routed through a MySqlConnection Object. So, before your application can communicate with the server, it must instantiate, configure, and open a MySqlConnection object.

Can I use MySQL with Visual Studio?

Many MySQL for Visual Studio features also require that MySQL Connector/NET be installed on the same host where you perform Visual Studio development. Connector/NET is a separate product. The options for installing MySQL for Visual Studio are: Using MySQL Installer [preferred]: Download and execute the MySQL Installer.

Bài mới nhất

Chủ Đề