In Blazor EditForm I use C# and Postgresql to INSERT data from a EditForm (Blazor)into the database table.
But for some reason it doesn't approve the data. Instead there Is an error message for the C# script saying that
So basically what I want to accomplish is to INSERT data into Postgres Database Table by using the EditForm.
I use a Model attribute added to the EditForm alongside InputText with a @bind-Value as you can see in the code.
Here is the Razor File
@page "/register"@using Login.Models;@using Npgsql;@inject NavigationManager NavigationManager<PageTitle>Register</PageTitle><EditForm method="post" Model="Register2" OnValidSubmit="RegisterForm" FormName="Register" Enhance><label for="username">Username:</label><InputText id="username" @bind-Value="Register2.username"/><label for="email">Email:</label><InputText id="email" @bind-Value="Register2.email"/><label for="password">Password</label><InputText type="password" id="password" @bind-Value="Register2.password"/><button type="submit" class="btn btn-primary">Register</button></EditForm>@code{ [SupplyParameterFromForm] private Register2 Register2 { get; set; } = new(); private string connectionString; public string? username { get; } = ""; public string? password { get; } = ""; public string? email { get; } = ""; private string localhost = "localhost"; private string user = "hidden"; private string pass = "hidden" private string db = "hidden"; private string tbl = "hidden"; public async Task RegisterForm() { connectionString = $"host={localhost};username={user};password={pass};database={db}"; using var connection = new NpgsqlConnection(connectionString); connection.Open(); var register = $@"insert into {tbl}(username, email, password) values(@username, @email, @password)"; var cmd = new NpgsqlCommand(register, connection); cmd.Parameters.AddWithValue("@username", username); cmd.Parameters.AddWithValue("@email", email); cmd.Parameters.AddWithValue("@password", password); cmd.ExecuteNonQuery(); NavigationManager.NavigateTo("/User"); }}Here is the C# script
namespace Login.Models;using Npgsql;public class Register2{ private string connectionString; public string username { get; set; } public string password { get; set; } public string email { get; set; } = ""; private string localhost = "localhost"; private string user = "postgres"; private string pass = "NewPass123"; private string db = "individual_assignment_db"; private string tbl = "users"; //Summarized you basically validate input with two form fields... public Register2() { connectionString = $"host={localhost};username={user};password={pass};database={db}"; using var connection = new NpgsqlConnection(connectionString); connection.Open(); var register = $@"insert into {tbl}(username, email, password) values(@username, @email, @password)"; var cmd = new NpgsqlCommand(register, connection); cmd.Parameters.AddWithValue("@username", "Nick"); cmd.Parameters.AddWithValue("@email", "nickgatsfield@gmail.com"); cmd.Parameters.AddWithValue("@password", "abcdefgh"); cmd.ExecuteNonQuery(); } }