Grid Save/Update not updating data in mysql database

Greetings,

I after a few hours of trying, I am not succeeding. My Grid, upon clicking Save, is not sending that data to the mysql database. Please see code below:

This is my CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using MySql.Data.MySqlClient;

namespace Sample1
{
    public partial class powderstock : System.Web.UI.Page
    {
        DataTable dt = new DataTable("Order");
        protected void Page_Load(object sender, EventArgs e)
        {
           
            if (Session["username"] != null)
            {
                Session["username"].ToString();
                Session.Timeout = 120;
                LoadGrid();
            }
            else
            {
                Response.Redirect("Login.aspx");
            }
        }

        protected void grid_stock_ServerEditRow(object sender, Syncfusion.JavaScript.Web.GridEventArgs e)
        {
            EditAction(e.EventType, e.Arguments["data"]);
        }

        private void LoadGrid()
        {
            MySqlConnection myConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["mySql"].ToString());
            dt = new DataTable("Order");
            MySqlCommand cmd = new MySqlCommand();
            cmd.Connection = myConnection;
            cmd.CommandText = "SELECT * FROM tbl_psl";
            cmd.CommandType = CommandType.Text;
            MySqlDataAdapter da = new MySqlDataAdapter();
            da.SelectCommand = cmd;
            if (myConnection.State == ConnectionState.Closed)
            {
                myConnection.Open();
            }
            da.Fill(dt);
            Session["SqlDataSource"] = dt;
            grid_stock.DataSource = dt;
            grid_stock.DataBind();
        }

        protected void EditAction(string eventType, object record)
        {
          
                MySqlConnection myConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["mySql"].ToString());
                dt = Session["SqlDataSource"] as DataTable;
                Dictionary<string, object> KeyVal = record as Dictionary<string, object>;
                if (eventType == "endEdit")
                {
                    var Order = KeyVal.Values.ToArray();
                    foreach (DataRow dr in dt.Rows)
                    {
                        if (Convert.ToInt32(dr["EntryID"]) == Convert.ToInt32(Order[0]))
                        {
                            dr["Paint_Code"] = Order[2];
                            dr["Match"] = Order[3];
                            dr["Int_Ext"] = Order[4];
                            dr["Current_Stock_KG"] = Order[5];
                            dr["Usable_Recycle_KG"] = Order[6];
                            dr["Total_Stock"] = Order[7];
                            dr["Powder_To_Order"] = Order[8];
                            dr["Comments"] = Order[9];
                            dr["Date"] = Order[10];
                            dr.AcceptChanges();
                        }

                    }
                }

                else if (eventType == "endAdd")
                {
                    var Order = KeyVal.Values.ToArray();
                    DataRow dr = dt.NewRow();
                    dr["SupplierName"] = Order[1];
                    dr["Paint_Code"] = Order[2];
                    dr["Match"] = Order[3];
                    dr["Int_Ext"] = Order[4];
                    dr["Current_Stock_KG"] = Order[5];
                    dr["Usable_Recycle_KG"] = Order[6];
                    dr["Total_Stock"] = Order[7];
                    dr["Powder_To_Order"] = Order[8];
                    dr["Comments"] = Order[9];
                    dr["Date"] = Order[10];
                    dt.Rows.Add(dr);
                }
                else if (eventType == "endDelete")
                {
                    var Order = KeyVal.Values.ToArray();
                    if (Session["SqlDataSource"] != null)
                    {
                        DataRow[] rows = dt.Select("EntryID = " + Order[0]);

                        foreach (DataRow row in rows)
                            dt.Rows.Remove(row);

                    }
                }
                Session["SqlDataSource"] = dt;
                grid_stock.DataSource = dt;
                grid_stock.DataBind();
        }
        

        protected void grid_stock_ServerDeleteRow(object sender, Syncfusion.JavaScript.Web.GridEventArgs e)
        {
            EditAction(e.EventType, e.Arguments["data"]);
        }

        protected void grid_stock_ServerAddRow(object sender, Syncfusion.JavaScript.Web.GridEventArgs e)
        {
            EditAction(e.EventType, e.Arguments["data"]);
        }
    }
}

This is my html:

 <ej:Grid ID="grid_stock" runat="server" AllowFiltering="True" AllowSorting="True" AllowTextWrap="True" OnServerAddRow="grid_stock_ServerAddRow" OnServerDeleteRow="grid_stock_ServerDeleteRow" OnServerEditRow="grid_stock_ServerEditRow">
                     <EditSettings AllowEditing="true" AllowAdding="true" AllowDeleting="true"></EditSettings>
                        <ToolbarSettings ShowToolbar="True" ToolbarItems="add,edit,delete,update,cancel"></ToolbarSettings> 
                        <Columns>
                            <ej:Column Field="EntryID" HeaderText="Entry ID" IsPrimaryKey="True">
                            </ej:Column>
                            <ej:Column Field="SupplierName" HeaderText="Supplier Name">
                            </ej:Column>
                            <ej:Column Field="Paint_Code" HeaderText="Paint Code">
                            </ej:Column>
                            <ej:Column Field="Match" HeaderText="Match">
                            </ej:Column>
                            <ej:Column Field="Int_Ext" HeaderText="Int/Ext">
                            </ej:Column>
                            <ej:Column Field="Current_Stock_KG" HeaderText="Current Stock">
                            </ej:Column>
                            <ej:Column Field="Usable_Recycle_KG" HeaderText="Recycled Stock">
                            </ej:Column>
                            <ej:Column Field="Total_Stock" HeaderText="Total Stock">
                            </ej:Column>
                            <ej:Column Field="Powder_To_Order" HeaderText="To Order">
                            </ej:Column>
                            <ej:Column Field="Comments" HeaderText="Comments">
                            </ej:Column>
                            <ej:Column Field="Date" HeaderText="Date">
                            </ej:Column>
                        </Columns>
                        <EditSettings AllowEditing="True" />
                    </ej:Grid>



2 Replies

TK Teddy Kubheka May 20, 2020 12:28 PM UTC

This has been resolved by following this article: https://www.syncfusion.com/forums/143777/another-crud-example.

Thank you.


FS Farveen Sulthana Thameeztheen Basha Syncfusion Team May 20, 2020 02:22 PM UTC

Hi Teddy, 

We are glad to know that your reported problem has been resolved. Please get back to us if you need any further assistance. We are happy to assist you. 

Regards, 
Farveen sulthana T 



Loader.
Up arrow icon