  | 
              
	              
	                
  
    |   | 
   
  
    
        
        สอบถาม การ import Excel ไป ยัง SQL server `ด้วยข้อมูลชนิด ทศนิยมครับ     | 
   
  
    |   | 
   
 
 
 
	
		
			  | 
	   | 
	    | 
		
			  | 
	 
	
		
			  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                คือ ผมลองแล้ว สามารถเพิ่มค่า ตัวอักษรได้ปกติ แต่ ดาต้า ที่เป็น ตัวเลข มีปัญหาครับ 
ไม่ทราบว่าพอมีแนวทางการแก้ไขไหมครับ 
 
protected void btImport_Click(object sender, System.EventArgs e)
        {
            //list<ชื่อตาราง>
            List<testdbl> lsTestdbl = new
            List<testdbl>();
            if (FileUpload1.HasFile && Path.GetExtension(FileUpload1.FileName) == ".xlsx") 
            {
                //ใช้ using statement ประกาศตัวแปล: excel เป็นอ็อบเจ็กต์ ExcelPackage โดยผ่านอินพุตสรีมที่อ่านได้จาก FileUpload1
                using (var excel = new
                ExcelPackage(FileUpload1.PostedFile.InputStream))
                {
                    //ประกาศตัวแปล worksheet โดยกำหนดให้เท่ากับ sheet แรก
                    //int myid = PersonID.t 
                    var worksheet = excel.Workbook.Worksheets.First();
                    //float worksheet2 = excel.Workbook.Worksheets.First();
                    //วนลูบแถวข้อมูลใน Excel โดยเริ่มที่ 2 จนถึงแถวสุดท้าย
                   // int num = string.IsNullOrEmpty(worksheet) ? 0 : int.Parse(worksheet);
                    for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
                    {
                        //ประกาศตัวแปล เก็บข้อมูลคอลัมน์ต่างๆ
                        
                        var PersonID = worksheet.Cells[row, 1].Value;//คอลัมน์ 1
                        var PersonName = worksheet.Cells[row, 2].Value;//คอลัมน์ 2
                        var PersonAge = worksheet.Cells[row,  3].Value;//คอลัมน์ 3
                        var PersonCity = worksheet.Cells[row, 4].Value;//คอลัมน์ 4
                        var PersonBugged = worksheet.Cells [row,5].Value;//คอลัมน์  5
                        
                        //เพิ่มข้อมูลที่อ่านได้จาก Excel ใส่เข้าไปในอ็อบเจ็กต์ List ของ Customer
                        //int myid = PersonID.Toi();
                        
                        //float PersonBugged2 = float.Parse(PersonBugged);
                        //int num = string.IsNullOrEmpty(PersonID) ? 0 : int.Parse(PersonID);
                       // double bugged = Convert.ToDouble(PersonBugged);
                        lsTestdbl.Add(new testdbl
                      {
                          id = PersonID     ==null ? ""  : PersonID.ToString(),
                          name = PersonName == null ? "" : PersonName.ToString(),
                          age = PersonAge == null ? "" : PersonAge.ToString(),
                          city = PersonCity == null ? "" : PersonName.ToString(),
                          bugget =PersonBugged == null ? "" : PersonBugged.ToString()
                                              
                      });
                        //int num = string.IsNullOrEmpty(id) ? 0 : int.Parse(PersonID);
                        //double bugged = Convert.ToDouble(PersonBugged);
                    }
                   using (ADMS dc = new ADMS())
                    {
                        //คิวรี่ข้อมูล มาตรวจสอบ
                        foreach (var item in lsTestdbl)
                        {
                            var q = dc.testdbls.Where(t => t.id == item.id).FirstOrDefault();
                            //ถ้ายังไม่มีข้อมูล อยู่ในฐานข้อมูล (ให้เพิ่มได้)
                            if (q == null)
                            { //ประตัวแปล:newCus โดยกำหนดให้เท่ากับ อ็อบเจ็กต์ใหม่ของ Customer
                                //พร้อมกับกำหนดค่าให้ อ็อบเจ็กต์ใหม่ของ Customer
                                var newPs = new testdbl
                                 {
                                     
                                     id = item.id,
                                     name = item.name,
                                     age = item.age,
                                     city = item.city,
                                     bugget = item.bugget
                                 };
                                dc.testdbls.InsertOnSubmit(newPs);
                                dc.SubmitChanges();
                            }
                        }
                        }
                        //ผูกข้อมูลเข้า DataSource ของ GridView
                        GridView1.DataSource = lsTestdbl.ToList();
                        //ผูกข้อมูลเข้า DataSource ของ GridView
                        GridView1.DataBind();
                       //แสดงป้าย บอกให้ผู้ใช้งานทราบสถานะ การทำงาน
                        Label1.Text = "บันทึกข้อมูลเรียบร้อย";
         
                    
                    }
                }
                
                
                else {//แสดงป้าย บอกให้ผู้ใช้งานทราบสถานะ การทำงาน
                      Label1.Text = "คุณไม่ได้ระบุไฟล์ที่จะอัปโหลด";
                   
                
                }
 
 
  Tag : Ms SQL Server 2012, Excel (Excel.Application), LINQ, C#, Windows               
                        | 
           
          
            | 
			
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2014-12-19 14:57:31 | 
                      By :
                          jatupoom | 
                      View :
                          1335 | 
                      Reply :
                          12 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  | 
	 
	
		
			  | 
		  | 
		
			  | 
		
			  | 
	 
 
              
  
          
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                      
การ Insert,Update SQL  data type เป็นสิ่งสำคัญมาก 
แต่พอมาใช้ datasource ผมนิลืมข้อเสียตรงนั้นไปเลย 5555555                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-12-19 15:09:47 | 
                        By :
                            lamaka.tor | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เอ้อ คือ ผมใช้ แบบ LINQ อะงับ มันง่ายดีเวลา ที่ต้องแอดข้อมูลปริมาณมากๆๆ 
แ่ตอนนี้ ผมแอดค่า ตัวเลขกับทศนิยมไม่ได้ แหะๆ  
คือแบบว่า ผมมือใหม่แกะกล่องจริง ๆ 
 
ไม่ทราบว่าควรแอดไปที่ ไลน์ ไหน หรอครับ ตอน แปลงค่า                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-12-19 15:24:01 | 
                        By :
                            jatupoom | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เพิ่มเติม ปกติพวกนี้ถ้า Data Type ไม่ถูก มันจะ Build ไม่ผ่านอยู่แล้วครับ                        
               
               | 
             
            
              
			  			  
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-12-19 15:28:29 | 
                        By :
                            mr.win | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ตามพี่ วิน แต่แนะนำนิด 
วิธีบ้านๆของผม 
คือ ทำ  Data Type ให้ตรงกับ Data Type ของ database แค่นั้นแหละครับ 
เฉพาะส่วนของการรับข้อมูลเข้าไป รึ จะเริ่มตั้งแต่ประกาศตัวแปรก็ไม่ผิด 
***ที่สำคัญคือต้องมั่นใจว่า ทำ  Data Type ให้ตรงกับ Data Type ของ database แค่นั้นแหละครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-12-19 15:38:49 | 
                        By :
                            lamaka.tor | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                                          
               
               | 
             
            
              
			  			  
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-12-19 16:04:15 | 
                        By :
                            mr.win | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ถ้าอยากชัวก็ใช้เป็น dynamic จะดีกว่าครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-12-19 16:27:10 | 
                        By :
                            Programmer ด้อยปัญญา | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |