  | 
              
	              
	                
  
    |   | 
   
  
    
        
        รบกวนดูวิธีการ check ค่า gridview โดยการวนลูปบรรทัดแรกถึงบรรทัดสุด้ายนำไปเช็คกับตารางใน database ถ้าตรงกันให้แจ้งซ้ำด้วยครับ     | 
   
  
    |   | 
   
 
 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ติดตรงไหนครับ แจ้ง error ว่าอะไร 
 
จากที่ดูแบบหยาบๆ  
line 6: i เป็นตัวแปรที่ใช้สำหรับ Column แต่ทำไมเอาไปใช้กับเมธอด Rows() แล้ว row จาก foreach มีไว้ทำอะไรครับ 
line 9: ds1 ให้เดาน่าจะหมายถึง Dataset ถ้าใช่แล้วสร้างไว้ตรงไหน 
 
ลองเปลี่ยน query จาก select * เป็น select count(*) แล้วใช้ ExecuteReader() หรือ ExecuteScalar() ดูหรือยังครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-07-04 18:13:46 | 
                        By :
                            PhrayaDev | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 column ไม่ต้อง loop คุณจะทำอะไรกับทุก cell หรือเปล่า 
เอาแค่ ข้อมูลเฉพาะ cell มาตรวจสอบ 
 
และการอ้างตัวแปร ก็ไม่จำเป็นต้องอ้างจาก ต้นตอแล้ว เอาตัวแปรที่ ผ่านค่ามาใช้ได้เลย 
 
foreach(DataGridView row in dgv2.Rows) 
   var id =  row.Cells[ตำแหน่งที่ต้องการ].value;                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2019-07-05 07:18:28              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-07-05 07:17:51 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (C#) 
foreach(DataGridView row in dgv2.Rows)
              {
              for(int i = 0; i < dgv2.Columns.Count; i++)
              {        
                  cmd1 = new SqlCommand("select * from Cometowork1 where Empid=@Empid and Date=@Date", con);
                  cmd1.Parameters.AddWithValue("@Empid", Convert.ToString(dgv2.Rows[i].Cells[0].Value ?? DBNull.Value));
                  cmd1.Parameters.AddWithValue("@Date", dtp1.Text);   
                  SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
                  da1.Fill(ds1);
                 int i = ds1.Tables[0].Rows.Count; 
                  if (i > 0)
                  {
                      DialogResult result = MessageBox.Show("ข้อมูลซ้ำโปรดตรวจสอบ", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                      ds1.Clear();
                  }   
                  else
 
 
 
วิธีการคิด/วิธีการเขียนโปรแกรมของคุณผิดหมด อยู่อนุบาล 1 ในขุมนรก ยังไม่ได้เลย ทำได้อย่างเดียว อ้าปากแล้วรอแม่เขี่ยหัวนมให้ตรงปาก 
 
ให้เอาไปคิดเป็นการบ้าน 1 วินาที Transactions เป็นล้านฯ รายการ เขาทำกันอย่างไร? 
--- คุณโชคร้าย เขาไม่บอกคุณ แต่เขาบอกผม (ผมโชคดี)                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-07-05 13:12:50 | 
                        By :
                            xxx | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 @K-YON, ALL 
ลูกศิษย์มันมีข้อสงสัย ก็เลยยกตัวอย่างมาให้ดู (พ.ศ. 2533 ก่อนหน้านั้นก็เคยเขียน) 
 
MySQL 5.xx.xx VS SQLServer 2008/etc...  Pass String Array To Stored Procedure  (17/06/2553)  
 
ส่งค่าไปประมาณนี้ 1, 2, 3, 4, 5 
 
จริงฯแล้วผมให้เขาดู Unix/Linux/Windows และ HMI/PLC-CNC/SCADA/IoT/etc... 
 
 
คิดว่า Mobile First (Web App/Windows App --- ไม่อยู่ในสายตา) 
 
Code (SQL) 
USE [YourDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
IF OBJECT_ID ( '[dbo].[msrFormPerm_usp01]', 'P' ) IS NOT NULL
    DROP PROCEDURE [dbo].[msrFormPerm_usp01]
GO
 
CREATE PROCEDURE [dbo].[msrFormPerm_usp01]
(
 @PageID AS int = 0,
 @RoleIDc AS nvarchar(MAX) = '',
 @UserID AS int = 0
) 
AS
BEGIN
 SET NOCOUNT ON ;
  
 DECLARE @strSQL AS nvarchar(MAX) ='' ;
     
   SET @strSQL = 'SELECT c.ACL,
                   0 As Flag,
                   0 As Priority
                   FROM msrFormPerm c WHERE c.PageID ='
                   + CAST(@PageID AS varchar)
                   + ' '
                   + 'AND (c.RoleID = 0 OR c.RoleID IS NULL) AND c.UserID ='
                   + ' '
                   + CAST(@UserID AS varchar)
                   + ' '
                   + 'AND c.IsActive = 1'
                   + ' '
                   + 'UNION ALL'
                   + ' '
                   + 'SELECT a.ACL,
                   1 As Flag,
                   b.Priority
                   FROM msrFormPerm a INNER JOIN msrRoles b ON a.RoleID = b.RoleID
                   WHERE a.PageID ='
                   + ' '
                   + CAST(@PageID AS varchar)
                   + ' '
                   + 'AND a.RoleID IN('
                   + @RoleIDc
                   + ') '
                   + 'AND (a.UserID = 0 OR a.UserID IS NULL) AND a.IsActive = 1 AND b.IsActive = 1' ;
                        
    EXEC sp_executesql @strSQL ;
     
END
GO
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-07-08 09:21:23 | 
                        By :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 อันนี้เป็น MySQL/อื่นฯ มันก็ไม่แตกต่างกันอทิเช่น ORACLE/DB2/etc... 
(ยกตัวอย่างแค่ พื้นฐาน กลัวจะไม่เข้าใจ) 
 
Code (SQL) 
-- =============================================
-- Author:  Herudoy
-- Create date: 17 มิถุนายน พ.ศ. 2553
-- Description: SQLServer 2008 Express
-- (การผ่านค่า String Array ให้กับ Stored Procedure)
-- =============================================
DROP PROCEDURE IF EXISTS wsdb.msrFormPerm_usp01;
 
CREATE PROCEDURE wsdb.`msrFormPerm_usp01`(IN `PageID` int, IN `RoleIDc` varchar(20000), IN `UserID` int)
    READS SQL DATA
 
BEGIN
 SET @strSQL = CONCAT('SELECT c.ACL,
                       0 As Flag,
                       0 As Priority
                       FROM msrFormPerm c WHERE c.PageID ='
                       , PageID
                       , ' '
                       , 'AND (c.RoleID = 0 OR c.RoleID IS NULL) AND c.UserID ='
                       , ' '
                       , UserID
                       , ' '
                       , 'AND c.IsActive = 1'
                       , ' '
                       , 'UNION ALL'
                       , ' '
                       , 'SELECT a.ACL,
                       1 As Flag,
                       b.Priority
                       FROM msrFormPerm a INNER JOIN msrRoles b ON a.RoleID = b.RoleID
                       WHERE a.PageID ='
                       , ' '
                       , PageID
                       , ' '
                       , 'AND a.RoleID IN('
                       , RoleIDc
                       , ') '
                       , 'AND (a.UserID = 0 OR a.UserID IS NULL) AND a.IsActive = 1 AND b.IsActive = 1') ;
                     
   PREPARE stmt FROM @strSQL ;
   EXECUTE stmt ;
   DEALLOCATE PREPARE stmt ;
   
END;
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-07-08 09:31:24 | 
                        By :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ไอ้เด็กเมื่อวานซืนเขียนให้ผมดู เจ้า xxx ทุกวันนี้มันใช้ C# 8 เขียน async/await บน void main ได้ 
Code (JavaScript) 
function doAjax() {
    $.ajax({
        url: ajaxurl,
        type: 'POST',
        data: {
            stuff: "here"
        },
        success: function (data) {
            //wacky nested anonymous callbacks go here
            var something_but_not_really = data;
        },
        error: function (jqXHR, textStatus, errorThrown) {
            // Empty most of the time...
        }
    });
    return something_but_not_really
}
async function doAjax(args) {
    const result = await $.ajax({
        url: ajaxurl,
        type: 'POST',
        data: args
    });
    return result;
}
async function doAjax(args) {
    let result;
    try {
        result = await $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: args
        });
        return result;
    } catch (error) {
        console.error(error);
    }
}
//Method 1
const stuff = await doAjax();
//Method 2
doAjax().then((data) => doStuff(data))
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-07-08 10:19:58 | 
                        By :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |