Difference between revisions of "Connect MySQL to ASP.Net Web App"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Connecting the Database)
(Using the Connection)
 
(One intermediate revision by the same user not shown)
Line 36: Line 36:
 
public void OnGet()
 
public void OnGet()
 
{
 
{
    users.Clear(); // clear users before a load or reload
 
 
 
     using var connection = GetConnection; // this gets the connection
 
     using var connection = GetConnection; // this gets the connection
  
Line 44: Line 42:
 
     connection.Close();
 
     connection.Close();
 
}
 
}
</syntaxhighlight>
 
 
==Insert data==
 
Inside your subclass of `PageModel` add the following method, this will run a submit:
 
<syntaxhighlight lang=c#>
 
public IActionResult OnPost()
 
{
 
    User temp = new User();
 
    temp.username = Request.Form["user"];
 
    temp.password = Request.Form["password"];
 
    temp.status = Convert.ToInt32(Request.Form["status"]);
 
 
    using var connection = GetConnection;
 
 
    connection.Open();
 
    string sql = "insert into test values(@p1, @p2, @p3);";
 
    using var Command = new MySqlCommand(sql, connection);
 
    Command.Parameters.AddWithValue("@p1", temp.username);
 
    Command.Parameters.AddWithValue("@p2", temp.password);
 
    Command.Parameters.AddWithValue("@p3", temp.status);
 
 
    Command.ExecuteNonQuery();
 
    connection.Close();
 
 
    users.Add(temp);
 
 
    return Page();
 
}
 
</syntaxhighlight>
 
 
In your html you need to create a form like this:
 
 
<syntaxhighlight lang=html>
 
<form method="post">
 
<input type="Text" name="user">
 
<input type="Text" name="password">
 
<input type="number" name="status">
 
<input type="submit">
 
</form>
 
 
</syntaxhighlight>
 
</syntaxhighlight>

Latest revision as of 07:24, 23 October 2024

Install MySQL.Data

Using the Nuget Package Manager install the following:

  • MySql.Data;
  • MySql.Data.MySqlClient;

Creating the connection

Now using the page you want to connect, open the Model `cs` code.

At the top add the following

using MySql.Data;
using MySql.Data.MySqlClient;


You need to have a local webserver running with an installation of MySQL & PHP. I have used the USBWebServer from your SQL lessons. I have also created this connection string. The string below includes the name of the database, mine is just called `test`. The string should be inside the subclass of `PageModel`:

string connection = "server=localhost;user=root;database=test;port=3306;password=usbw;";

Finally I created this method to get the connection, it should be inside the subclass of `PageModel`:

        public MySqlConnection GetConnection 
        {
            get
            {
                return new MySqlConnection(connection);
            }
        }

Using the Connection

Now, in the OnGet method I have added the following code, which will create, open, and close the database connection:

public void OnGet()
{
    using var connection = GetConnection; // this gets the connection

    connection.Open(); // you must open the connection
            
    connection.Close();
}