Difference between revisions of "Connect MySQL to ASP.Net Web App"
(→Getting the data) |
(→Creating the connection) |
||
Line 13: | Line 13: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
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`: | 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`: |
Revision as of 13:43, 19 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);
}
}
Connecting the Database
Now, in the OnGet method I have added the following code, which will create, open, and close the database connection:
public void OnGet()
{
users.Clear(); // clear users before a load or reload
using var connection = GetConnection; // this gets the connection
connection.Open(); // you must open the connection
connection.Close();
}
Insert data
Inside your subclass of `PageModel` add the following method, this will run a submit:
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();
}
In your html you need to create a form like this:
<form method="post">
<input type="Text" name="user">
<input type="Text" name="password">
<input type="number" name="status">
<input type="submit">
</form>