Good afternoon,
what’s the best way to add a custom menu entry and associate a custom page where we would like to add a combo for for selecting one option and let the user confirm with a button click that will execute a stored procedure on the attached database?Many thank for your suggestion.Best regards,
John
You need to create your own custom file. Please refer help file topic “Custom Files” as a start.
I did the custom file with select list and button.How can i invoke the stored procedure then?
I think it is a common problem and there isn’t a clear example in the help.Thanks.
You can just use the Razor codes in your custom page to handle the request. For example:@{
var req = Get(“req”);
}
@if (req == “1”) {
//… process form here
} else {
//… request form here
}
Sorry,
ow does this fit with having a select list and a button that needs to be used to call the stored procedure:
Please select Year:
Inizialize
Hi,
when i try to implement as suggested i got following error:The name ‘GetStoredProcCommand’ does not exist in the current contextHere it is my implementation:
@{
    var selyear = string.Empty;
    if (Request.HasFormContentType)
    {
        selyear = Request.Form["selyear"];
    }
}
<div style="margin-top:30px;">
    <form method="post">
        <div>
            <select name="selyear" class="selectpicker show-tick">
                <option hidden selected>Please select year...</option>
                <option>2021</option>
                <option>2022</option>
                <option>2023</option>
                <option>2024</option>
                <option>2025</option>
                <option>2026</option>
                <option>2027</option>
                <option>2028</option>
                <option>2029</option>
                <option>2030</option>
                <option>2031</option>
                <option>2032</option>
                <option>2033</option>
                <option>2034</option>
                <option>2035</option>
            </select>
        </div>
        <div><input type="submit" /></div>
    </form>
</div>
    @if (!string.IsNullOrEmpty(selyear))
    {
        // var dbhelper = GetConnection("DB");
        // var cmd = dbhelper.GetStoredProcCommand("sp_Tenant_InitYearCalendar");
        var cmd = GetStoredProcCommand("sp_Tenant_InitYearCalendar");
        cmd.Parameters.Add("Tenant", SqlDbType.Int).Value = 1;
        cmd.Parameters.Add("YearNum", SqlDbType.Int).Value = selyear;
        cmd.Parameters.Add("retval", SqlDbType.Int).Value = 0;
        cmd.Open();
        cmd.ExecuteNonQuery();
    <p>You choose year: @selyear!</p>
    }
What’s wrong?BR,
John
Change GetStoredProcCommand to:var cmd = Connection.GetCommand(“…”);
cmd.CommandType = CommandType.StoredProcedure;
//…
Hello,
I fixed the db connection using the dbhelper.This is now a working set:
@{ var selyear = string.Empty;
    if (Request.HasFormContentType)
    {
        selyear = Request.Form["selyear"];
    } }
<div style="margin-top:30px;">
    <form method="post">
        <div>
            <select name="selyear" class="selectpicker show-tick">
                <option hidden selected>Please select year...</option>
                <option>2021</option>
                <option>2022</option>
                <option>2023</option>
                <option>2024</option>
                <option>2025</option>
                <option>2026</option>
                <option>2027</option>
                <option>2028</option>
                <option>2029</option>
                <option>2030</option>
                <option>2031</option>
                <option>2032</option>
                <option>2033</option>
                <option>2034</option>
                <option>2035</option>
            </select>
        </div>
        <div><input type="submit" /></div>
    </form>
</div>
@if (!string.IsNullOrEmpty(selyear))
{
    int iYear = 0;
    if (int.TryParse(selyear, out iYear))
    {
        try
        {
            var dbhelper = GetConnection("DB");
            var cmd = dbhelper.GetCommand("sp_Tenant_InitYearCalendar");
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("Tenant", MySqlDbType.Int32).Value = 1;
            cmd.Parameters.Add("YearNum", MySqlDbType.VarChar).Value = selyear;
            cmd.Parameters.Add("retval", MySqlDbType.Int32);
            cmd.Parameters["retval"].Direction = ParameterDirection.Output;
            cmd.ExecuteNonQuery();
            <p>Sucessfully added year: @selyear!</p> 
        }
        catch (Exception ex)
        {
            <p>Problem adding year! @ex.Message</p>
        }
     }
 }
I hope this could help someone else.Many thanks for helping.Best regards,
John
very usefull. this is what i’m looking for