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,027

HOME > .NET Framework > Forum > C# WinApp Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.



 

C# WinApp Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.

 



Topic : 125672



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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



ถ้าเรา bind DataGridView กับ BindingSource ไว้ถ้ามี PK ปกติพอเรากรอกข้อมูลไป
ตัว PK ก็จะขึ้นมาเอง
แบบนี้ครับ

55

แต่ในกรณีที่เราเขียนเป็นโค้ดเพิ่มข้อมูลลงใน Rows ต้องเขียนยังไงครับ
พอดีผมเขียนแบบนี้แล้ว Error
Code (C#)
for (int i = 1; i < 21; i++)
            {
                tblOne2UpLinkDataGridView.Rows.Add(0-i, "sfddgfd " + i,"srfsfaeteyaad" + i);
            }


1311


ปล.ต้องการ เพิ่มข้อมูลลงใน Rows ก่อน ค่อย Save ลง database ครับ



Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-12-09 09:16:11 By : lamaka.tor View : 2104 Reply : 16
 

 

No. 1



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



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


อันนี้ใช้ Wizard มาหรือปล่าวครับ
พอดีผมไม่เคยใช้เลย

แต่ก็น่าจะคล้าย ๆ กัน คือเราผูก datatable เข้าไปกับ datagridview ใช่ไหมครับ
วิธีแก้คือไป add ข้อมูลที่ datatable แทน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 10:22:35 By : fonfire
 


 

No. 2



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : fonfire เมื่อวันที่ 2016-12-09 10:22:35
รายละเอียดของการตอบ ::
ยังไม่มีการ add ข้อมูลที่ datatable ครับ

ปล.ต้องการ เพิ่มข้อมูลลงใน Rows ก่อน ค่อย Save ลง database ครับ

แต่ถ้าใช้ add ข้อมูลที่ datatable ก่อนก็ทำได้ปกติครับ
หก


ผมจะทำเป็น AutoAddRows มองเป็นตาราง สินค้าละกันนะครับ
1. เพิ่ม สินค้า ซัก 15 อย่างโดยชื่อเหมือนกันแค่ต่อท้ายด้วยตัวเลข เช่น xyz_1,xyz_2,xyz_3,xyz_4......xyz_15
2. ต้องการตรวจสอบข้อมูลก่อนที่จะบันทึก
เช่น xyz_1,xyz_4......xyz_15 xyz_2,xyz_3 ไม่มีสินค้า


หรือ สมมุติว่า
ผมอยากได้ ค่าการวัด อุณหภูมิ 100 ค่า แต่ต้องการเช็คดูผลก่อน(จะตัด/เพิ่ม) ค่อย add ข้อมูลลง datatable


ประมาณนั้นครับ


ปล.ตอนนี้กำลังศึกษาว่า เมื่อเรา เพิ่มข้อมูลใน datagrid แล้ว มี -1,-2.... มันอยู่ใน Event ไหน ของ datagrid
เผื่อจะเอามาเป็นประโยชน์ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 11:05:32 By : lamaka.tor
 

 

No. 3



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



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


มันน่าจะมีการเพิ่มข้อมูลไปแล้วน่ะครับ
ถ้าไม่เพิ่ม datagridview จะมีข้อมูลแสดงได้ยังไง

บรรทัดที่เป็นคำสั่ง .fill ก็คือการเขียนเข้า dataset/datatable
และคงมีการตั้งค่า datasource ไว้ให้แล้วน่ะครับ
เพียงแต่ code มันไม่โชว์ตรงนี้

ผมเดาน่ะครับ
พอดีไม่เคยใช้ wizard
เข้าใจว่ามันคงสร้าง code ให้อัตโนมัติ
แล้วซ่อน code เอาไว้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 13:09:05 By : fonfire
 


 

No. 4



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 3 เขียนโดย : fonfire เมื่อวันที่ 2016-12-09 13:09:05
รายละเอียดของการตอบ ::
ตามรูปแระนะครับ

ไม่ได้เพิ่มใน datatable ครับ สังเกตว่า column PK จะมีค่าที่ติดลบ


ให้เดาน่าจะอยู่ใน bindingsource นั่นแหละครับ
คราวนี้ผมก็กำลังจะหาว่ามันจะแอบซ่อนไว้ตรงไหน จะได้เอามาประยุกต์ใช้บ้าง

ปล. ที่ผมใช้ wizard เพราะ เร็ว/ง่าย/ลดโค้ด เหมาะสำหรับคนที่อยากเขียนโปรแกรมเกี่ยวกับ database แต่ขี้เกียจเรียนเรื่อง SQL แบบผม
แต่เท่าที่ผมใช้อยู่ SQL บ้านๆก็สะดวกดีครับ ถ้าสูงกว่านั้นผมใช้วิธีออกแบบ database ให้ดีๆเอาครับ
แถมใช้มา 2 ปีไม่เคยติดปัญหาเรื่อง SQL จริงๆจังๆซักที และยังใช้ delete/insert/update join union ได้ครบ
ทั้งๆที่แม้กระทั่ง select ง่ายๆผมยังไม่คล่องเลยครับ
ถือว่า wizard ตอบโจทย์ ผมได้ดีเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 14:00:35 By : lamaka.tor
 


 

No. 5



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



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


จริง ๆ ที่ไม่ใช้ wizard เพราะใช้ไม่เป็นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 14:15:22 By : fonfire
 


 

No. 6



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : fonfire เมื่อวันที่ 2016-12-09 14:15:22
รายละเอียดของการตอบ ::
เอาจริงดิ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 14:26:40 By : lamaka.tor
 


 

No. 7



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



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


จริง ๆ เคยใช้ทีนึง
ตอนหัดเขียน รู้สึกว่าเวลาต้องการแก้ไข
มันแก้ลำบาก ก็เลยไม่สนใจอีกเลย

ผมลองให้แล้วน่ะครับ
เป็น datagridview จาก wizard
มันมีการผูก datasource เข้าไปก่อนน่ะครับ
ดหกดหกดหกด

Code (C#)
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'testDBDataSet.Emp' table. You can move, or remove it, as needed.
            this.empTableAdapter.Fill(this.testDBDataSet.Emp);
        }

       private void button2_Click(object sender, EventArgs e)
        {
         DataRow dr;
         dr = this.testDBDataSet.Emp.NewRow();
         dr[0] = "a";
         dr[1] = "a";
         dr[2] = "a";
         this.testDBDataSet.Emp.Rows.Add(dr);
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 14:45:57 By : fonfire
 


 

No. 8



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ตอนนี้ที่ติดคือ ID ที่เป็น AutoImplement ครับ
ตามรูปแรกนะครับ
สังเกตว่า column PK จะมีค่าที่ติดลบ

แต่ที่อยากทำก็คือ ไม่เพิ่มโดยการกรอกข้อมูลลง DataGridView ตามรูปแรกครับ
แต่จะเขียนเป็นโค้ดในการเพิ่มเช่น
Code (C#)
for (int i = 1; i < 21; i++)
            {
                tblOne2UpLinkDataGridView.Rows.Add(เพิ่มข้อมูลใน DataGridView );
            }


ติดตรงนี้เลยครับ เพราะผมลองใช้

Code (C#)
for (int i = 1; i < 21; i++)
            {
                tblOne2UpLinkDataGridView.Rows.Add(0 - i, "sfddgfd " + i, "srfsfaeteyaad" + i);
            }


แบบนี้ รันไม่ผ่านครับ

ผมทดลองต่อ ตามประสานักวิทย์บ้านๆ
โดยเพิ่มโค้ดหนูลองยาสำหรับ เรียกใช้ DataTable
Code (C#)
public static System.Data.DataTable GetTableForm(string _SQL, string strConn)
      {

          System.Data.DataSet ds = new System.Data.DataSet();

                  System.Data.OleDb.OleDbConnection conn2 = new System.Data.OleDb.OleDbConnection(strConn);
                  conn2.Open();
                  System.Data.OleDb.OleDbDataAdapter adapter2 = new System.Data.OleDb.OleDbDataAdapter(_SQL, conn2);
                  adapter2.Fill(ds);

          return ds.Tables[0];

      }


จากนั้น ก็ ให้ tblOne2UpLinkDataGridView เรียกใช้ DataTable
Code (C#)
tblOne2UpLinkDataGridView.DataSource = GetTableForm("SELECT PK, Link, File FROM tblOne2UpLink", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\One2UpLinkFile.accdb");


แบบนี้ก็ไม่มี ตัวเลขติดลบมาให้

จากนั้น ก็ ให้ tblOne2UpLinkDataGridView เรียกใช้ DataTable ผ่าน BindingSource ดู
Code (C#)
BindingSource bs = new BindingSource();
            bs.DataSource = _Database.GetTableForm("SELECT PK, Link, File FROM tblOne2UpLink", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\One2UpLinkFile.accdb");
            tblOne2UpLinkDataGridView.DataSource = bs;


แบบนี้ก็ไม่มี ตัวเลขติดลบมาให้เช่นกัน

พอมาถึงตอนนี้เริ่มสับสนแล้วครับ
ตกลงไอ้ที่ติดลบมาจาก class ไหนกันแน่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 15:21:42 By : lamaka.tor
 


 

No. 9



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

ไอ้ที่ติดลบ น่าจะเป็น ค่าบอก AutoIncrement เฉยๆมั้งครับ
ประมาณบอกให้ DataTable รับรู้ว่า Datarow ที่มีค่าติดลบ ก็ขอให้ AddRow ใหม่เข้าไป

Code (C#)
this.tblOne2UpLinkTableAdapter.Fill(this.one2UpLinkFileDataSet.tblOne2UpLink);
           for (int i = 1; i < 21; i++)
            {
                DataRow dr;
                dr = this.one2UpLinkFileDataSet.tblOne2UpLink.NewRow();
                dr[0] = 0-i;
                dr[1] = "TOR " + i;
                dr[2] = "Test " + i ;
                this.one2UpLinkFileDataSet.tblOne2UpLink.Rows.Add(dr);
            }


โค้ดนี้สามารถเพิ่ม ค่าติดลบ ได้แล้วครับ
ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-09 15:46:26 By : lamaka.tor
 


 

No. 10

Guest


@TOR_CHEMISTRY, FONFIRE มาเป็นคู่เลย
--- ผมเดาฯเอานะ งานของพวกคุณมันก็แค่ 1 Tire (มีหน้าเดียว)
--- งานของผมมันมีหลายหน้า n-tire (หลายหน้า)

Quote:
PK จิ๋มฯแค่ Columns เดียวมันจะไปทำอะไรได้


งานจริงฯของผมผมใช้ 6 Keys (PK --> fld1 + fld2 + ... fld6)
--- แน่นอนว่า ไร้ซึ่งตำราเรียน
----- (ถ้ามันมีตำราเรียน/ผู้สอน) เขาคงไม่ว่าจ้างผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-10 19:57:42 By : หน้าฮี
 


 

No. 11

Guest


จาก #NO 10 ผมขยายความได้ว่า
--- ผมไม่ได้ใช้ Programming นำ แต่ผมเอาตรรกะทางธุรกิจนำ (Busisness)

วันพรุ่งนี้ถ้าผมโชคดี ผมอาจจะเจอคนที่เขียน FoxPro/Visual FoxPro, และฝั่งเซียน JAVA (อันดับต้นฯของเมืองไท)
--- ผมมีเรื่องที่ต้องคุยกับเขาอีกเยอะแยะ
--- โอกาสน้อยมากฯ ที่ คนระดับเหนือพรหมจะมาคุยกัน


ปล. ไม่ใช่เทพที่คุยกันแต่มันคือ มหาพรหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-10 20:09:16 By : หน้าฮี
 


 

No. 12

Guest


จาก #NO 10 - 11
@TOR_CHEMISTRY, FONFIRE
--- พวกคุณโชคดีที่ผมพูดและเอ่ยคำเป็นภาษา "คน" เพื่อให้พวกคุณได้เข้าใจ
------ มันไม่ใช่เรื่องง่ายฯ สำหรับผม

ปล. เกียรติ/ศักดิ์ศรี ผมไม่ได้เป็นคนสร้าง แต่มันมาจากความรู้สึกเกรงใจ/ไม่แน่ใจ/ไม่สนใจ
จากคนอื่นฯต่างหากเล่า สู๋เอย จะเล่าให้ฟัง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-10 20:22:55 By : หน้าฮี
 


 

No. 13

Guest


@หน้าฮี คำพูดคุณฉลาดนะ แต่รู้ไหมว่ามัน "โง่" ในสายตาผมเอามากๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-15 09:21:30 By : คนโง่ที่ไม่อวดฉลาด
 


 

No. 14

Guest


Quote:
@หน้าฮี คำพูดคุณฉลาดนะ แต่รู้ไหมว่ามัน "โง่" ในสายตาผมเอามากๆ


ผลประโยชน์ของต้องมาก่อนคำว่า "คุณธรรมเสมอ"
--- ผมไม่เคยลืมข้อนี้


ปล. ผมอยู่อย่างตายทั้งเป็น และ ผมไกล้ที่จะไปเกิดใหม่อีกรอบหนึ่ง (เวียนว่ายวายวน ผมกำหนดได้)
แน่นอนว่าผมยังเป็นเด็กเสมอ (Fresh)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-16 20:26:15 By : หน้าฮี
 


 

No. 15

Guest


Quote:
ดึกดื่นนี้เศรษฐีตื่นแล้ว สำรวจแก้วมณีในสรวงสวรรค์
ล้วนทรัพย์สมบัติฉันทั้งนั้น ชื่อแจ่มจันทร์และปวงดวงดาวฯ

จ้างเทพเจ้าอะคร้าวปรุงอากาศ สะอาดบริสุทธิ์ซึ้งกลางหนหาว
เจียระไนเพชรน้ำค้างพร่างพราว ป่าวให้ทานพลังบุญสุนทรีย์ฯ

ปลูกมิ่งไม้ไว้หลายภูผา สั่งฟ้าอุ้มฝนจนเต็มที่
ไว้รดอุทยานนานแรมปี ให้เขียวขจีสะพรั่งทั้งกัปป์กัลป์

เลี้ยงฝูงโประดกนกหกป่า ขังกรงขอบฟ้าหิมวาอาถรรพ์
แบ่งปันผลไม้ให้เป็นรางวัล แถมของขวัญอื่นดื่นฤดูไปฯ

แล้วร้องปลุกอุษาเทวี อุษาโยคนี้อ่อนไท้หลับหรือไฉน
แสงเงินแสงทองธนาคารมโนมัย แม่เบอกใช้หมดแล้ว ฤ ยังมีฯ

ฝากบอกพระสุริยาด้วย ช่วยเร่งอรุโณทัยไขแสงสี
จ้างใหม่ทิพยสัญญากว่าโกฏิปี เบอกจ่ายทิพย์ที่บรมพรหมินทร์ฯ

ฉันเบื่อสมบัติพัสถาน อำลาอวสานชีพศาสตร์ศิลป์
ป่าวร้องปลวกมดทุกเม็ดทรายดิน มารุมกินซากผีนี้เถอะเทอญฯ



ปล. บทกวีที่ถูกเล่าขาน ต้นฉบับมาจากท่านอังคาร กัลยาณพงค์
(ถ้าผมจำไม่ผิดท่านน่าจะเป็นคนจังหวัด นครศรีธรรมราช)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-16 20:38:52 By : หน้าฮี
 


 

No. 16

Guest


คำว่า "เวียนว่ายวายวน"
--- ถ้าพูดถึงความรัก
------ ห้วงน้ำลึกนัก
------ ห้วงรักลึกกว่าหลายเท่า
--- ถ้าพูดถึงนักปราชญ์
--- ห้วงนักปราชญ์ อาจะหยั่งไม่ถึงสิ่งเหล่านี้
--- ห้วงคนสามัญชน สิ่งเหล่านี้คือชีวิตประจำวันของตัวเอง
...
...
...

ปล. ในความเป็นจริงของคนเรา "ไม่มีใครอยากจะโง่โดยไม่จำเป็นและไม่มีใครแกล้งฉลาดถ้าขาดโอกาสที่จะแสดง"

รับประกันได้ว่า "ผมอยู่เหนือสิ่งเหล่านี้/สิ่งที่ผมเคยเกริ่นไป"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-16 21:11:38 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่