Symbianize Forum

Most of our features and services are available only to members, so we encourage you to login or register a new account. Registration is free, fast and simple. You only need to provide a valid email. Being a member you'll gain access to all member forums and features, post a message to ask question or provide answer, and share or find resources related to mobile phones, tablets, computers, game consoles, and multimedia.

All that and more, so what are you waiting for, click the register button and join us now! Ito ang website na ginawa ng pinoy para sa pinoy!

[c#] datagrid is updating but new data is not reflecting

puuts

Proficient
Advanced Member
Messages
210
Reaction score
0
Points
26
Hello,

I have 2 forms
Code:
frm_Main = contains my datagrid
Form2, button_ADD = trigger to add new data in my datagrid in frm_Main

Nag aadd naman po database yung data ang problema lng is hndi sya nagrreflect sa datagrid ko. Ang gusto ko po sana real-time ko yung mga bagong add na data.

Eto po yung code ko:
In my Form2, button_ADD event click
Code:
private void _refreshDATAGRID()
        {
            HYPERION_.MODEL.mdlDashboard myMDL = new HYPERION_.MODEL.mdlDashboard();
            frm_Main fm = new frm_Main(); 
            fm.dgv.AutoGenerateColumns = false;
            fm.dgv.DataSource = null;
            fm.dgv.DataSource = myMDL.COPY_DatasetSource("Report_ID DESC").Tables[0].DefaultView;
            fm.dgv.Refresh();
            

        }

Code:
public virtual DataSet COPY_DatasetSource()
        {

            try
            {
                return this.COPY_DatasetSource(null);

            }
            catch(Exception ex)
            {
                throw ex;
            }

        }

        public virtual DataSet COPY_DatasetSource(string strOrder)
        {

            if (strOrder != null) strOrder = " ORDER BY  " + strOrder;

            OleDbDataAdapter dap = new OleDbDataAdapter(cmd);

            cmd.CommandText = "SELECT * FROM " + this.TableName +  strOrder;
            cmd.CommandType = CommandType.Text;
            cmd.Connection = cn;

            try
            {

                ds.Clear();
                dap.Fill(ds, "dg_Report");
                


            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                dap = null;
                cn.Close();
            }

            return ds.Copy();

        }

Thanks in advance mga boss!
 
Last edited:
maglagay ka muna ng breakpoint doon sa function mo na nagrereturn ng dataset mo. Tingnan mo kung may return value nga.

or kung gusto mo. gamitin mo to.
Hindi na ako gumamit ng data set kasi isang query lang naman ineexecute nya kaya DataTable na lang.

Code:
public string connectionString = "Your Connection String Here";

public DataTable GetDataTable(string query)
        {

            using (OleDbConnection con = new OleDbConnection(connectionString))
            {
                using (OleDbCommand cmd = new OleDbCommand(query, con))
                {
                    cmd.CommandType = CommandType.Text;
                    using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
                    {
                        using (DataTable dt = new DataTable())
                        {
                            da.Fill(dt);
                            return dt;
                        }
                    }
                }
            }
        }

//everytime na may mababago sa table mo execute mo lang to.

DataTable dt = GetDataTable("select * from yourtable");
dataGridView1.DataSource = dt;
 
Sir crypted07 thanks for reply but still same thing happens parin eh.. nag add sya, pero hndi kagad nagrreflect ung bagong add na data sa datagrid.
Yung dalawang forms ko po is naka-open parehas. Once na i-click ko yung button ko sa form 2, i want the new data to be reflected real time in my datagrid kaso nga po hndi nagrreflected kgad though nag add nman sya sa database.
 
Gumawa ka ng function na nagrerebind ng data sa datagrid mo. Tapos i-call mo un after mo mag-add, edit, delete, save, at cgane ng page number (kung nakapaging ka) ng item para kung anuman ung changes mo sa db magrereflect agad sa datagrid mo.

parang ganito:

Code:
Private Function GetSelData(SelectCmd As SqlCommand) As Data.DataTable
        Dim dt As Data.DataTable = New Data.DataTable
        Dim con As SqlConnection = New SqlConnection(DBConn)
        Dim sda As SqlDataAdapter = New SqlDataAdapter
        SelectCmd.Connection = con

        Try
            con.Open()
            sda.SelectCommand = SelectCmd
            sda.Fill(dt)
            'lblTotalProj.Text = "Number of Projects: " & dt.Rows.Count
            Return dt
        Finally
            If con.State = Data.ConnectionState.Open Then
                con.Close()
            End If
        End Try

    End Function

Private Sub BindData()

        'Dim DBcmd As New SqlCommand("SQL COMMAND", DBConn)
        Dim strQuery As String = ("QUERY STRING")
        Dim SelectCmd As SqlCommand = New SqlCommand(strQuery)

        gvPlantilla.DataSource = GetSelData(SelectCmd)
        gvPlantilla.DataBind()

    End Sub

Pasensya na vb kasi gamit ko eh.. convert mo na lang dito para maging c# http://www.developerfusion.com/tools/convert/vb-to-csharp/
 
Last edited:
ilagay mo to sa button ng 2nd form mo kung saan ka nag upupdate ng data.
Code:
Form frm=(Form)this.MdiParent;
DataGridView dt = (DataGridView)frm.Controls["dataGridView1"]; // change dataGridView1 sa name ng gridview mo sa mainform
dt.DataSource = put your datasource here

gagana to kapag galing yung 2nd form sa main form. unless ibang form pa yung tumawag. kung madami ka pang level of forms pag aralan mo yan MdiParent.
 
I've just resolved it.

Tinawag ko na lang ulit ung function ko na nagffill ng datagrid ko pagbalik nya sa form1 :yipee:

Ang ginawa ko na lng po is after button in form2 is click:

Add new data in database > hide Form2 > Balik sa form1 > Call ung function na nagffill ng datagrid.

Thanks sa reply sir crypted07 and iCeQB
 
Ganito ang ginagawa ko dito...
I have a Global Function to retrieve the latest data on my Database, then i-call ko lang to whenever changes were applied.

If mag-add ako.
I'll show the frmAdd modally.
I have a Public variable maybe an ID or Boolean, to contain whether my record successfully added or not or pag nag-close ng form without adding.
After closing the frmAdd, I'll check whether a new record was created, my reference would be the public variable I've mentioned above.
If there is a new, then I'll call the global function to retrieve the latest data.
pag 0 or false. wala ng gagawin.

I hope, naintindihan mo, :)
 
nice advice sir knives.. ts ganun nalang gawin mo para, mag rereload lang ng data kapag may new or edited.. :thumbsup:
 
nice advice sir knives.. ts ganun nalang gawin mo para, mag rereload lang ng data kapag may new or edited.. :thumbsup:

Tama ito... Pero i-call mo lang TS ung function mo after clicking ng add/save button mo.
 
Back
Top Bottom