|  | 
	                
  
    |  |  
    | 
        
        ต้องการบันทึกข้อมูลจาก DataGridView ลง Database หลายๆแถว     |  
    |  |  
 
	
		|  |  |  |  |  
		|  |  | 
          
            | มีข้อมูลหลายๆแถวแต่เพิ่มลงฐานข้อมูลได้แค่แถวเดียว ช่วยแก้ code ด้วยครับ 
 Code (C#)
 
 private void saveSalesOrder_Click(object sender, EventArgs e)
        {
            try
            {
                OleDbConnection OleDbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=SparesStore.mdb;");
                OleDbCommand OleDbCmd = new OleDbCommand();
                OleDbCmd.Connection = OleDbConn;
                OleDbCmd.CommandText = "INSERT INTO SalesOrder VALUES (customer_id, customer_name, invoice_id, date, invoice_product_id, invoice_product, invoice_quantity, invoice_unit, invoice_price, invoice_amount)";
                OleDbConn.Open();
                OleDbCmd.Parameters.Add("@รหัสลูกค้า", OleDbType.VarChar).Value = customer_id.Text;
                OleDbCmd.Parameters.Add("@ชื่อ", OleDbType.VarChar).Value = customer_name.Text;
                OleDbCmd.Parameters.Add("@เลขที่", OleDbType.VarChar).Value = invoice_id.Text;
                OleDbCmd.Parameters.Add("@วันที่", OleDbType.Date).Value = date.Text;
                for (int i = 0; i <= salesOrderView.RowCount - 1; ++i)
                {
                    OleDbCmd.Parameters.Add(new OleDbParameter("@รหัสสินค้า", salesOrderView.Rows[i].Cells[0].Value));
                    OleDbCmd.Parameters.Add(new OleDbParameter("@สินค้า", salesOrderView.Rows[i].Cells[1].Value));
                    OleDbCmd.Parameters.Add(new OleDbParameter("@จำนวน", salesOrderView.Rows[i].Cells[2].Value));
                    OleDbCmd.Parameters.Add(new OleDbParameter("@หน่วยนับ", salesOrderView.Rows[i].Cells[3].Value));
                    OleDbCmd.Parameters.Add(new OleDbParameter("@ราคา", salesOrderView.Rows[i].Cells[4].Value));
                    OleDbCmd.Parameters.Add(new OleDbParameter("@จำนวนเงิน", salesOrderView.Rows[i].Cells[5].Value));
                    OleDbCmd.ExecuteNonQuery();
                }
                OleDbConn.Close();
                MessageBox.Show("บันทึกสำเร็จ");
                customer_id.Clear();
                customer_name.Clear();
                invoice_id.Clear();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            //salesOrderView.Rows.Clear();
        }
 
 
 Tag : .NET, Ms Access, Win (Windows App), C#
 
 
 |  
            |  |  
            | 
              
                |  |  |  |  
                |  | 
                    
                      | Date :
                          2012-03-25 23:46:13 | By :
                          DevilMonkeyZ | View :
                          3800 | Reply :
                          7 |  |  |  
                |  |  |  |  |  
            |  |  
		            |  |  
		|  |  |  |  |  
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | น่าจะแบบนี้ครับ 
 Code (C#)
 
 	private void saveSalesOrder_Click(object sender, EventArgs e)
        {
            try
            {
                OleDbConnection OleDbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=SparesStore.mdb;");
                OleDbConn.Open();
                for (int i = 0; i <= salesOrderView.RowCount - 1; ++i)
                {
			OleDbCommand OleDbCmd = new OleDbCommand();
			OleDbCmd.Connection = OleDbConn;
			OleDbCmd.CommandText = "INSERT INTO SalesOrder VALUES (customer_id, customer_name, invoice_id, date, invoice_product_id, invoice_product, invoice_quantity, invoice_unit, invoice_price, invoice_amount)";
			OleDbCmd.Parameters.Add("@รหัสลูกค้า", OleDbType.VarChar).Value = customer_id.Text;
			OleDbCmd.Parameters.Add("@ชื่อ", OleDbType.VarChar).Value = customer_name.Text;
			OleDbCmd.Parameters.Add("@เลขที่", OleDbType.VarChar).Value = invoice_id.Text;
			OleDbCmd.Parameters.Add("@วันที่", OleDbType.Date).Value = date.Text;
			OleDbCmd.Parameters.Add(new OleDbParameter("@รหัสสินค้า", salesOrderView.Rows[i].Cells[0].Value));
			OleDbCmd.Parameters.Add(new OleDbParameter("@สินค้า", salesOrderView.Rows[i].Cells[1].Value));
			OleDbCmd.Parameters.Add(new OleDbParameter("@จำนวน", salesOrderView.Rows[i].Cells[2].Value));
			OleDbCmd.Parameters.Add(new OleDbParameter("@หน่วยนับ", salesOrderView.Rows[i].Cells[3].Value));
			OleDbCmd.Parameters.Add(new OleDbParameter("@ราคา", salesOrderView.Rows[i].Cells[4].Value));
			OleDbCmd.Parameters.Add(new OleDbParameter("@จำนวนเงิน", salesOrderView.Rows[i].Cells[5].Value));
			OleDbCmd.ExecuteNonQuery();
                }
                OleDbConn.Close();
                MessageBox.Show("บันทึกสำเร็จ");
                customer_id.Clear();
                customer_name.Clear();
                invoice_id.Clear();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            //salesOrderView.Rows.Clear();
        }
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2012-03-26 06:35:43 | By :
                            webmaster |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ได้แล้วครับ ขอบคุณมากครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2012-03-26 18:07:57 | By :
                            DevilMonkeyZ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | แล้วถ้าโค้ดแบบด้านบนนั้น เวลาเก็บครั้งต่อไปมันจะถูกลงไปทับตัวเดิมในดาต้าเบสหรือปล่าวครับ เพราะผมดูคร่าวๆแล้ว ทุกครั้งที่กดจะเริ่มเก็บลงตั้งแต่ช่องแรกใหม่อ่ะครับ 
 มีโค้ดอ่ะไรตรงไหนในโค้ดด้านบนที่สามารถทำให้การเก็บข้อมูลครั้งใหม่ไม่ลงไปทับของเดิมอ่ะครับ ผมอ่านโค้ดไม่ค่อยออก = ="
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2012-03-27 09:34:30 | By :
                            หนึ่ง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อันนี้ น่าสนใจมากครับ แต่ถ้าเป็น ฐานข้อมูล SQL Server2008 มันจะมีการเรียกใช้อย่างไรครับ แต่ด้านบนที่ถามว่ามันจะทับหรือป่าว คือมันไม่ทับโดยดูจากค่า Index i ครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2012-09-25 10:12:53 | By :
                            Littlefatboyz |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | พี่วิน ช่วยทีครับ อันนี้ผมก็ต้องการดูอยู่เหมือนกันครับ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2012-09-25 10:25:35 | By :
                            Littlefatboyz |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ตั้งกระทู้พร้อมรายละเอียดใหม่ครับ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2012-09-26 08:59:04 | By :
                            mr.win |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 |  |