Click here to Skip to main content
15,888,351 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more: , +
I have to insert two fields in a table using that identity value i have to insert a datatable in another table using stored procedure, and also want to update, delete second table values.

EXAMPLE:
Table1 :

HTML
PurchaseID int -> identity field
  VendorName nvarachar(20)


Table 2:
HTML
PurchaseID int
 ItemName nvarchar(20)
 ItemQty  int
 Rate     decimal
 TotalAmount decimal

Table1 fields value entered in textbox and Table2 fields values are stored as datatable and both passes to sql server stored porocedure. How can i do this effiecently. Please help me.

I need answer without using xml datatype in sql server?
Posted
Updated 14-Feb-12 1:18am
v5
Comments
Anuja Pawar Indore 19-Jan-12 8:26am    
Added pre tag

1 solution

1) Create one stored procedure which will accept three parameters
PurchaseID INT
VendorName nvarachar(20)
PurchaseDetailsXML XML
2) Insert first two parameters in Table1
3) Parse XML and insert the values in temporary table . then insert those values as well in to Table2

4) while executing the stored procedure from C# code you have to convert datatable into XML value and stored that in one XML variable let say "Purdetails" also store id and vendorname into two variable "Id","VenName"

Then execute the stored procedure and pass these three variable as parameter

Hope this helps,
--Rahul
 
Share this answer
 
Comments
HarisJayadev 20-Jan-12 3:44am    
Thank u for u help. But i have already used this technique. but i don know how to update any one row in table2 using xml. can you help me?
RDBurmon 20-Jan-12 4:07am    
You can do this by this way

DECLARE @PurchaseDetails AS TABLE
(
PurchaseID int ,
ItemName nvarchar(20) ,
ItemQty int,
Rate decimal,
TotalAmount decimal
)



DECLARE @PurchaseDetailsXML AS XML
SET @PurchaseDetailsXML
='<PurchaseDetails>
<Purchase PurchaseID="1" ItemName="AC" ItemQty="10" Rate="25000" TotalAmount="250000"/>
<Purchase PurchaseID="2" ItemName="SplitAC" ItemQty="10" Rate="20000" TotalAmount="200000"/>
<Purchase PurchaseID="3" ItemName="Computer" ItemQty="10" Rate="18000" TotalAmount="180000"/>
</PurchaseDetails>'

INSERT INTO @PurchaseDetails
SELECT
PurchaseDetails.Purchase.value('@PurchaseID', 'int') PurchaseID,
PurchaseDetails.Purchase.value('@ItemName', 'nvarchar(20)') ItemName,
PurchaseDetails.Purchase.value('@ItemQty', 'int') ItemQty,
PurchaseDetails.Purchase.value('@Rate', 'decimal') Rate,
PurchaseDetails.Purchase.value('@TotalAmount', 'decimal') TotalAmount
FROM
@PurchaseDetailsXML.nodes('PurchaseDetails/Purchase') as PurchaseDetails(Purchase)




UPDATE PurchaseDetails
SET
ItemName=PD.ItemName ,
ItemQty =PD.ItemQty ,
Rate=PD.Rate,
TotalAmount=PD.TotalAmount
FROM @PurchaseDetails PD Inner Join PurchaseDetails P ON P.PurchaseID=PD.PurchaseID

INSERT INTO PurchaseDetails
SELECT * FROM @PurchaseDetails WHERE PurchaseID not in (SELECT PurchaseID FROM PurchaseDetails)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900