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 > ผมต้องการที่จะเช็คค่าในตาราง 2 ตาราง แล้วลบโดยใช้เงื่อนไขรบกวนพี่ๆๆช่วยหน่อยคับ



 

ผมต้องการที่จะเช็คค่าในตาราง 2 ตาราง แล้วลบโดยใช้เงื่อนไขรบกวนพี่ๆๆช่วยหน่อยคับ

 



Topic : 049546

Guest




ผมต้องการที่จะเช็คค่าในตาราง 2 ตาราง แล้วลบ

table1 ฟิว UId เก็บ id ของตาราง

table 2 ฟิว id เก็บ id ของตารางที่ 2 และ ฟิว Uidjob เก็บ id ของตารางที่ 1

เมื่อกดปุ่มลบก็จะส่งค่าไปยังอีก Page โดยส่งค่าพารามิเตอร์ไปโดยได้ส่งค่า jobuid ไปว่าต้องการจะลบ id ไหน

jobuid = Request.QueryString["uid"].ToString(); //ตอนรับค่าที่ส่งมา

ตอนลบข้อมูลตารางเฉพาะตาราง 1
string deleteSQl = string.Format("DELETE From IssuedLogs where(UId='{0}') ", jobuid);
DataTable userData = new DataTable();
SqlCommand cm = new SqlCommand(deleteSQl, lcConn);
cm.CommandText = deleteSQl;
cm.ExecuteNonQuery();
Response.Redirect("~/MainMenu.aspx");

ที่ผมต้องการที่จะเช็คข้อมูลจากตารางที่ 2 ว่ามีข้อมูลที่ query มามีอยู่ในตารางที่ 2 หรือ โดยใช้คำสั่ง SELECT COUNT(*) From เช็คว่า ถ้า count = 0 ก็ให้ลบ แต่ถ้า count >0 ก็แสดงไดอะล็อกว่าไม่ สามารถลบข้อมูลได้


ลบกวนพี่ๆๆทั้งหลายช่วยอธิบายเพิ่มcode จากตัวอย่างให้คับหน่อยคับ ขอบคุณมากคับ



Tag : .NET, Ms SQL Server 2005, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-09-30 04:34:06 By : Osel View : 1211 Reply : 7
 

 

No. 1

Guest


เงียบเลยรบกวนพี่ๆๆช่วยหน่อยนะคับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-01 00:17:14 By : Osel
 


 

No. 2

Guest


Code (VB.NET)
If (New SqlClient.SqlCommand("select case when count(*) > 0 then 'true' else 'false' end from xxxx", lcConn)).ExecuteScalar Then
            MsgBox("ไม่สามารถลบข้อมูลได้ ")
        Else
            'ToDo : ลบข้อมูลตรงนี้
        End If

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-01 10:31:08 By : WingVian ZeaZar
 

 

No. 3



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



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


[table02] related กับ [table01] โดย [table02].[UIDJob] = [table01].[id] (many-one)

คุณจะลบตารางไหนยังไงคะ อธิบายอีกที

a. ลบตารางที่ 1 และลบ ตารางที่ 2 ที่ related ด้วยทั้งหมดออก
b. ลบตารางที่ 2 ที่ไม่มี related กับ ตารางที่ 1
c. .................


ประวัติการแก้ไข
2010-10-01 10:34:03
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-01 10:33:24 By : blurEyes
 


 

No. 4

Guest


ข้อมูลที่ผมต้องการจะลบนะคับ

จะมีตารางที่ 1 และตารางที่ 2 อยู่ จากนั้นผมดึงข้อมูลมาจากตารางที่ 1 มาแสดงทั้งหมดในหน้าหลัก
แล้วข้อมูลที่แสดงแต่ละแถว เมื่อเราคลิกเข้าไปจะมีงานย่อยอีกอีกทีนึงของแต่ล่ะแถวคับ (คงไม่งงนะ)
ส่วนงานย่อยผมได้เก็บไว้ในตารางที่ 2 พร้อมกับ id ของตารางที่ 1 ไว้ด้วยเพื่อไว้เช็คตอนที่คลิกดูข้อมูลจากหน้าหลัก

สิ่งที่ผมต้องการจะลบคือ

เมื่อผมคลิกเลือกข้อมูลจากหน้าหลัก สมมุติว่าเปง id 10 แล้วให้มันไปเว็คในตารางที่ 2 ด้วยว่ามี id 10 อยู่ในตารางที่ 2 ด้วยหรือป่าว

1. ถ้ามี id 10 เก็บอยู่ก็ให้มันแสดงไดอะล็อกว่ามีข้อมูลไม่สามารถลบได้เนื่องจากมีงานย่อยอยู่
2. ถ้าเช็คแล้วไม่มีว่าไม่มี id 10 อยู่ในตารางที่ 2 ก็ให้แสดงไดอะล็อกว่ายืนยันโดยการกด Yes เพื่อลบ


ผมต้องการใช้เช็คนะคับ count >0 ก็ห้ามลบ เท่ากับ 0 ก็ให้ลบตามคำอธิบายด้านบนนะคับ

Table1 มีฟิว uid
Table2 มีฟิว id และฟิว Uidjob
Uidjob จะเก็บ Uid ของ table1 นะคับ



คงไม่งงนะคับผมใช้ c#.net นะคับ ไม่ค่อยเก่ง database มือใหม่เลยก็ว่าได้อยากรบกวนพี่ช่วยหน่อยนะคับ ขอบคุณทุกท่านที่ให้คำแนะนำ และอธิบาย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 03:13:09 By : Osel
 


 

No. 5



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



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


โอเค
คุณสั่งลบ record จาก [table 01]
แต่มีเงื่อนไขว่า ถ้าไม่มี record จาก [table 02] มา related เลยก้อลบได้

Code (C#)
//แบบที่ 1 :  (ตัวอย่างเพื่อความเข้าใจ)

cmdBuilder.AppendLine("DECLARE @DELETABLE_FLAG       INT ;") ;
cmdBuilder.AppendLine("SET @DELETABLE_FLAG = 0 ;") ;
cmdBuilder.AppendLine()
cmdBuilder.AppendLine("SELECT @DELETABLE_FLAG = COUNT([table02].[id]) ") ;
cmdBuilder.AppendLine("FROM [table01]") ;
cmdBuilder.AppendLine("	RIGHT JOIN [table02]") ;
cmdBuilder.AppendLine("		ON [table01].[id]=[table02].[UIDJob] ;") ;
cmdBuilder.AppendLine("WHERE [table01].[id]=@VAR_ID;") ;
cmdBuilder.AppendLine()
cmdBuilder.AppendLine("IF (@DELETABLE_FLAG=0)") ;
cmdBuilder.AppendLine("BEGIN ")	
cmdBuilder.AppendLine("	DELETE * FROM [table01] WHERE [table01].[id]=@VAR_ID;") ;
cmdBuilder.AppendLine("     SET@DELETABLE_FLAG = 1; ")	
cmdBuilder.AppendLine("END")	
cmdBuilder.AppendLine("ELSE")	
cmdBuilder.AppendLine("     SET@DELETABLE_FLAG = 0; ")
cmdBuilder.AppendLine()	
cmdBuilder.AppendLine("SELECT @DELETABLE_FLAG;") ;

//แบบสั้น

cmdBuilder.AppendLine("DELETE FROM [table01]");
cmdBuilder.AppendLine("FROM [table01]");
cmdBuilder.AppendLine("	RIGHT JOIN [table02]");
cmdBuilder.AppendLine("		ON [table01].[id]=[table02].[UIDJob] ;");
cmdBuilder.AppendLine("WHERE ([table01].[id]=@VAR_ID)");
cmdBuilder.AppendLine("   AND ([table02].[id] IS NULL) ;");");
cmdBuilder.AppendLine("-- ([table02].[id] IS NULL) << NO RELATED ROW ACQUIRE");


USAGE:

Code (C#)
System.Text.StringBuilder cmdBuilder = new System.Text.StringBuilder() ;
// เอา code จากแบบที่ 1 หรือ 2 มาแปะตรงนี้ 
int totalEffectRec = 0 ;

Using (SqlConnection myConn = new SqlConnection(uConnectionString))
{
	
	
	SqlCommand myCommand = new myCommand( cmdBuilder.ToString() ,myConn );
	myCommand.Parameters.AddWithValue("@VAR_ID" ,uID) ;
	try
	{
		myConn.Open();
		totalEffectRec = myCommand.ExecuteNonQuery() ;	
	}
	catch (Exception Ex)
	{
		totalEffectRec = -1 ;
		// error trap here
	}
	finally
	{
		if(myConn!=null)
			myConn.Close();
	}


}

switch (totalEffectRec)
{
	case 0 : 
		// ลบไม่ได้้
		break ;
	case -1 "
		// Error
		break ;
	default :
		// ลบแล้ว
		break;
}


จะประมาณนี้มังคะ ถ้าผิดยังไงลองไปแก้ดูค่ะเพราะไม่ได้ test


ประวัติการแก้ไข
2010-10-02 06:31:30
2010-10-02 06:34:30
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 06:30:44 By : blurEyes
 


 

No. 6

Guest


ถ้าใช้ฐานข้อมูล My SQL ล่ะค่ะ

(ขอถามด้วยคนน่ะค่ะ มีปัญหาตรงจุดนี้เหมือนกัน )

คือจะลบ record จาก [table 1]
แต่มีเงื่อนไขว่า ถ้ามีข้อมูลใน[table 2] จะไม่สามารถลบได้เนื่องจากมีงานย่อยอยู่
แต่ถ้าไม่มี record จาก [table 2] มา related เลยก้อลบได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-02 12:43:24 By : คนไม่รู้
 


 

No. 7

Guest


ช่วยตอบหน่อยนะค่ะ

จะไม่ทันแล้ว (ขอบคุณล่วงหน้าค่ะ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-06 19:27:04 By : คนไม่รู้
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ผมต้องการที่จะเช็คค่าในตาราง 2 ตาราง แล้วลบโดยใช้เงื่อนไขรบกวนพี่ๆๆช่วยหน่อยคับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่