PDA

View Full Version : سوال: مشکل در درج در Tables با Store Procedure



sohrabi.1384
جمعه 14 آذر 1393, 22:15 عصر
:لبخندساده: دوستان :لبخندساده: برنامه نویس :لبخندساده: سلام :لبخندساده:

میخواستم در چند جدول درج کنم با این روش زیر ، با خطا مواحه نمیشم ولی نمیدونم مشکل کار در چیست عملیات با موفقیت انجام نمیشود



در کلاسی این کد را قرار دادم تا بعدا شی از این کلاس درست کنم تا به ابن متد INPUT دست رسی پیدا کنم

public bool InputProductMethod(int InvoiceID, int CustomerID, int ProductID, int SupplyNumber,int SupplyPrice/*, int PaymentID, int PaymentPrice, string PaymentIntroduce*/)
{
SqlConnection CN = new SqlConnection(DBWrapper.ConnectionString);
try
{
SqlCommand CMD = new SqlCommand();

CMD.CommandText = "input";
CMD.CommandType = CommandType.StoredProcedure;
////
CMD.Parameters.AddWithValue("@InvoiceID", InvoiceID);
CMD.Parameters.AddWithValue("@CustomerID", CustomerID);
CMD.Parameters.AddWithValue("@ProductID", ProductID);
CMD.Parameters.AddWithValue("@SupplyNumber", SupplyNumber);
CMD.Parameters.AddWithValue("@SupplyPrice", SupplyPrice);
//CMD.Parameters.AddWithValue("@PaymentPrice", PaymentPrice);
//CMD.Parameters.AddWithValue("@PaymentIntroduce", PaymentIntroduce);
//CMD.Parameters.AddWithValue("@KALA_ID", PaymentID);

//
CMD.Connection = CN;//Connetion Vasl hastim ro bayad Assing konim
CN.Open();
// CMD.ExecuteNonQuery();
SqlDataReader Dr = CMD.ExecuteReader();
DT = new DataTable();
DT.Load(Dr);
if (DT.Rows.Count != 0)
{
return true;
}
else
{
return false;
}

}
catch (Exception EX)
{
ErrorMessage = EX.Message; return false;
}
finally
{
CN.Close();
}
}








CREATE PROC SP_INS_INPUT_PRODUCTION
@InvoiceID NVARCHAR(10),
@InvoiceDate SMALLDATETIME,
@CustomerID NVARCHAR(10),
@ProductID NVARCHAR(10),
@SupplyID NVARCHAR(10),
@SupplyNumber NVARCHAR(10),
@SupplyPrice NVARCHAR(10),
@PaymentID NVARCHAR(10),
@PaymentPrice NVARCHAR(10),
@PaymentDate SMALLDATETIME,
@PaymentIntroduce NVARCHAR(50)
AS
BEGIN


SET @InvoiceDate = GETDATE()
--1----------------------------------------Factor = Invoice

INSERT FACTOR(FACTOR_ID,MOSHTARI_ID,FACTOR_TARIKH) VALUES (@InvoiceID,@CustomerID,@InvoiceDate)

--2----------------------------------------AGHLAM = Supply

INSERT AGHLAM (KALA_ID,
FACTOR_ID,
AGHLAM_TEDAD,
AGHLAM_MABLAGH)
VALUES
(@ProductID,
(SELECT TOP 1 FACTOR_ID FROM FACTOR ORDER BY FACTOR_ID DESC),
@SupplyNumber,
@SupplyPrice)

---3---------------------------Payment = Pardcakht---------------------------

INSERT PARDAKHT(
--3--1----
FACTOR_ID,
--3--2----
MOSHTARI_ID,
--3--3----
PARDAKHT_ID,
--3--4----
PARDAKHT_MABLAGH,
--3--5----
PARDAKHT_SHARH,
--3-6-----
PARDAKHT_TARIKH
)
VALUES
(
--3--1----
(SELECT TOP 1 FACTOR_ID FROM FACTOR ORDER BY FACTOR_ID DESC),
--3--2----
(SELECT MOSHTARI_ID
FROM FACTOR
WHERE FACTOR_ID IN
(SELECT TOP 1 FACTOR_ID
FROM FACTOR ORDER BY FACTOR_ID DESC)),
--3--3----
@PaymentID,
--3--4----
@PaymentPrice,
--3--5----
@PaymentIntroduce,
--3--6----
@PaymentDate
)

END


فکر کنم کد بیان گر باشه اگه مشخص نبود بگویید توضیح دهم

En_MK
جمعه 14 آذر 1393, 23:11 عصر
شما یه بار sp که نوشتید را در محیط اس کیو ال execute کنید ببینید خروجی میدهد؟
نکته دوم اینکه در کد زیر به جای input باید اسم sp ی را بطور دقیق جایگزین کنید

CMD.CommandText = "input";