Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > การ Refresh หน้ารายงานใน DataGripView เมื่อเพิ่มข้อมูล เเล้ว เเต่ไม่ Refresh



 

การ Refresh หน้ารายงานใน DataGripView เมื่อเพิ่มข้อมูล เเล้ว เเต่ไม่ Refresh

 



Topic : 039362

Guest




การ Refresh หน้ารายงานใน DataGripView เมื่อเพิ่มข้อมูล เเล้ว เเต่หน้ารายงานไม่ Refresh อ่ะครับช่วยหน่อยครับ ทำไง อ่ะครับ

เมื่อเพิ่มข้อมูล ไปเเล้วอ่ะครับ แก้ไข ลบข้อมูล เเล้ว พอคลิกที่ หน้ารายงาน DataGripView ข้อมูลที่แก้ไข รึเพิ่ม ข้อมูล ใหม่ไป พอคลิกไปที่ หน้ารายงาน DataGripView ข้อมูลไม่เปลี่ยน ตามที่เราแก้ไข อ่ะครับ เเต่พอไปดูในฐานข้อมูล มันเปลี่ยน เเล้ว จึงต้องรัน โปรแกรมใหม่ ถึงจะเปลี่ยน ช่วย บอกที่ ครับทำไงให้ ข้อมูลใน หน้ารายงาน DataGripView มันรีเฟช เมื่อเราเพิ่ม ข้อมูลอ่ะครับ


ช่วยผม ทีนะครับ ติด อะไรนิด ๆหน่อย ท่านผู้ใด รู้ ก็ช่วยตอบ ผมที นะครับ โปรเเจ็ค ก็ทำไปได้ 50 % แล้วครับ จะได้เป็นความ รู้ให้กับ อนาคต ของเด็ก ไทยด้วยครับผม ขอบคุณ ครับผม ทุกท่าน



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-21 18:54:28 By : นศ บ้านนอก View : 1940 Reply : 8
 

 

No. 1



โพสกระทู้ ( 394 )
บทความ ( 0 )



สถานะออฟไลน์


ตรงส่วนนี้ตอนทำโปรเจค ผมก็เจอครับ ผมทำเป็น Win Application อะครับ แล้วก็ใช้ DataGripView เป็นตัวแสดงผล เช่นผมทำหน้า form มา 2 หน้า หน้า form1 เป็นหน้าแสดงอุปกรณ์ หน้า form2 เป็นหน้าเพิ่มอุปกรณ์ เมื่อเรารันโปรแกรมขึ้นมาเข้าไปดูหน้า form1 มันก็จะแสดงข้อมูลให้ดู แล้วพอเรากดไปหน้า form2 โดยให้หน้า form1 hide ไป แล้วก็ไปทำการเพิ่มอุปกรณ์ที่หน้า form2 พอเพิ่มเสร็จแล้วเราก็กลับมาดูที่หน้า form1 ใหม่อีกครั้ง แต่ว่าอุปกรณ์ที่เราเพิ่มไปมะกี้ มันก็ไมได้ถูกแสดงขึ้นมาด้วย เหมือนเป็นเพราะว่า หน้า form1 มันไม่ได้ถูกโหลดขึ้นมาใหม่ แต่ว่ามันแค่ ซ้อน(hide) ไปเท่านั้น เมื่อเป็นเช่นนี้ผมก็เลยแก่ปัญหาตอนที่จะไปหน้า form2 โดยให้หน้า form1 ปิดไปก่อน โดยใช้คำสั่ง close() ที่นี้หน้า form2 ยังไม่ทันแสดง โปรแกรมก็ปิดไปแล้ว

สุดท้ายผมก็เลยแก้ไขใหม่ โดยให้ DataGripView จะแสดงผลก็ต่อเหมือน Mousemove ที่นี้ก็จะไม่มีปัญหาในเรื่องโปรแกรมไม่แสดงผลที่เป็นของใหม่แล้ว เพราะว่าใช้ Event Mousemove แทนการ Refresh
(แต่มันก็เป็นหลักที่ไม่ถูกต้องนะ เป็นแค่การแก้ปัญหาเฉพาะหน้าเท่านั้น)

-----------------------------------------------------------------------------------------------------------------------------------------

ท่านใด มีวิธีแก้ไขวิธีอื่น ช่วยบอกด้วยครับ ผมเองก็อยากทราบเหมือนกัน






Date : 2010-02-21 21:50:44 By : Nameless
 


 

No. 2

Guest


event page index change ของกริด
Date : 2010-02-21 22:04:25 By : iskong
 

 

No. 3

Guest


ไม่ทราบว่า เป็น WinApp หรือ WebApp คะ
ถ้าเป็น WebApp ก้อ PostBask Code ใน Page_Load ก้อดึงข้อมูลมาแล้วค่ะ

ส่วนในกรณีของ Winapp คุณคนที่ 2 ลองใช้วิธี Dialog ดูปะคะ
หลักการคือ เวลา คุณเปิด form2 อย่า show() เฉยๆ
ให้ใช้ ShowDialoq แทน ใน Form2 ก้อใส่ control ในการแก้ไปค่ะ
จะ แก้ไขอะไรทำเต็มที่เลย

เพียงแต่มีข้อกำหนดว่า form ที่จะใช้ทำเป็น Dialog ต้องกำหนด
ปุ่มสองปุ่มคือ Property AcceptButton กับ CancelButton ไว้
และ Code ข้างในสำหรับ
AcceptButton คือ this.DialogResult = DialogResult.OK;
CancelButton คือ this.DialogResult = DialogResult.Cancel;
ค่ะ
และมี Property ที่ต้อง set ดังนี้
AcceptButton >> ชื่อปุ่มที่จะทำเป็นปุ่ม OK ให้ลากปุ่มไปวางก่อน แล้วจะปารกฏชื่อที่นี่ค่ะ
CancelButton >> ชื่อปุ่มที่จะทำเป็นปุ่ม Cancel เหมือนข้างบนค่ะ
FormBorderStyle >> FixedDialog
HelpButton >> true
MaximizeBox >> false
MinimizeBox >> false
ShowIcon >> false
ShowInTaskBar >> false
Start Position >> CenterParent
Size >> ตามใจฉัน

จะยกตัวอย่างเป็น FrameCode ไว้นะคะ
ใน code ที่ยกมามี Form1 เป็น Main form
ซึ่ง datagrid จะอยู่ที่นี่
ส่วน formDialoque เป็น window form ที่เปลี่ยนเป็น dialog ค่ะ
ลองแก้ดูนะคะ คงไม่เขียนมากไปกว่านี้แล้วนะคะ ^ ^

FORM1(MAIN)

Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void buttonCallDialoqueLuvLuv_Click(object sender, EventArgs e)
        {

            if (((new formDialoque()).ShowDialog()) == DialogResult.OK)
            {
                MessageBox.Show("ผม ok นะคัฟเจ้านาย");
                //myGridSource.DataSource = FunctionReBindData();
            }
        }
    }
}
1-main



FORMDIALOQUE
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class formDialoque : Form
    {
        public formDialoque()
        {
            InitializeComponent();
        }

        private void formDialoque_Load(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
            //this.Close();
           
        }

        private void buttonCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
        }
    }
}
2-dialog





3-run
Date : 2010-02-21 23:06:42 By : blurEye
 


 

No. 4

Guest


ขอบคุณ ครับ ช่วย บอการ ทำ ปรับ Event Mousemove แทนการ Refresh หน่อย ครับ

ว่าทำไง ครับ ขอบคุณ ครับ ขอแก้ปัญหา เฉพาะ หน้าไปก่อนครับ รบกวน ช่วยบอก ที่

Event Mousemove แทนการ Refresh ปรับตรงไหนทำไง
Date : 2010-02-21 23:37:37 By : นศ บ้านนอก
 


 

No. 5



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


มันเป็นนวิธีที่ผิดน่ะค่ะ เพราะต้องใช้ event movement
event นี้จะมาเรื่อยๆ ตลอดเวลาที่ mouse เคลื่อนไป
ไม่ลองย้ายมาที่ Form.Activated ดูละคะ
Date : 2010-02-22 01:20:58 By : blurEye
 


 

No. 6

Guest


ขอบคุณพี่ blurEye และ พี่ iskong มากครับ
แต่ว่ารบกวนพี่ blurEyeขอตัวอย่าง FORM1(MAIN) และ FORMDIALOQUE เป็น code ของ vb.net ด้วยได้ป่าวครับ

ว่าแต่ Form.Activated อันนี้คือยังไงนะครับ ช่วยขยายความหน่อยได้ป่าวครับ

*ปล. รบกวนพี่ นศ บ้านนอก (เจ้าของกระทู้ ) ใช้ถามพี่ๆ เค้าด้วยคนนะครับ
Date : 2010-02-22 20:05:08 By : Nameless
 


 

No. 7



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


จะขึ้นกระทูใหม่ให้นะคะ
Date : 2010-02-22 20:42:41 By : blurEye
 


 

No. 8



โพสกระทู้ ( 182 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Hi5 Blogger

ผมใช้วิธี clear คำสั่ง Dataset แล้วรีโหลด sub ที่แสดง datagridview ตัวอย่าง
Code (VB.NET)
Private Sub ReadData()
        Dim sql As String = "select id_main,date_main,incexp,namelist,money_inc,money_exp,money_total,dep from Query1"
        _cmd = New OleDbCommand(sql, _conn)
        Dim adapter As New OleDbDataAdapter(_cmd)
        _dataset = New DataSet     'ประการ dataset
        adapter.Fill(_dataset, "showmain")

        Me.DataGridView1.DataSource = _dataset.Tables("showmain")
    End Sub


ในปุ่ม เพิ่ม,แก้ใข,ลบ ผมจะเพิ่มคำสั่ง นี้ไปด้วย

_dataset.Clear() คือ เครียดาต้าเซต
ReadData() โหลดใหม่

ตัวอย่าง

Code (VB.NET)
Private Sub bt_add_Click(sender As Object, e As EventArgs) Handles bt_add.Click
        Dim numrow As Integer
        Dim Sql1 = "select count(*) from Query1"
        _cmd = New OleDbCommand(Sql1, _conn)
        numrow = _cmd.ExecuteScalar()

        If numrow = 0 Then

            If Me.rd_inc.Checked = False And Me.rd_exp.Checked = False Then
                MsgBox("กรุณาเลือกรายรับหรือรายจ่าย")
                Return
            End If
            If Me.cb_list.SelectedValue = "1" Then
                MsgBox("กรุณาเลือกรายการ")
                Return
            End If
            If Me.txt_money.Text = "" Then
                MsgBox("กรุณาระบุจำนวนเงิน")
                Return
            End If

            Dim s As Boolean
            If Me.rd_inc.Checked = True Then
                s = True
            End If
            If Me.rd_exp.Checked = True Then
                s = False
            End If

            Dim inc, exp, moneylast As Integer


            If Me.rd_inc.Checked = True Then
                inc = Me.txt_money.Text
                exp = "0"
                moneylast = Me.txt_money.Text
            End If
            If Me.rd_exp.Checked = True Then
                inc = "0"
                exp = Me.txt_money.Text
                moneylast = Me.txt_money.Text
            End If

            Try

                Dim sql As String = "insert into Query1(date_main,incexp,id_list,money_inc,money_exp,money_total,dep)values(@date_main,@incexp,@id_list,@money_inc,@money_exp,@money_total,@dep)"
                _cmd = New OleDbCommand(sql, _conn)
                _cmd.Parameters.AddWithValue("date_main", Me.dtp_date.Value)
                _cmd.Parameters.AddWithValue("incexp", s)
                _cmd.Parameters.AddWithValue("id_list", Me.cb_list.SelectedValue)
                _cmd.Parameters.AddWithValue("money_inc", inc)
                _cmd.Parameters.AddWithValue("money_exp", exp)
                _cmd.Parameters.AddWithValue("money_total", moneylast)
                _cmd.Parameters.AddWithValue("dep", Me.txt_dep.Text)
                _cmd.ExecuteNonQuery()
                MsgBox("บันทึกข้อมูลเรียบร้อย")

                _dataset.Clear() ' เครียดาต้าเซต
                ReadData()         'โหลดใหม่
                showlist()
                ClearText()
                Readmoneytotal()
                Return

            Catch ex As Exception
                MsgBox("ไม่สามารถบันทึกข้อมูลได้")
            End Try


ผิดถูกยังใงก็ขออภัยมาด้ายนะครับ
Date : 2023-09-17 12:45:20 By : mosaddzero
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การ Refresh หน้ารายงานใน DataGripView เมื่อเพิ่มข้อมูล เเล้ว เเต่ไม่ Refresh
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่