|
|
|
Web Service เกิด Error แบบนี้ แก้ยังไงอะครับ นี่เป็น error ที่ผมได้หลังจากรัน service อะครับ |
|
|
|
|
|
|
|
นี่เป็น error ที่ผมได้หลังจากรัน service อะครับ
ผมกำลังงงว่ามันติด FK ได้ยังไงครับ
อันนี้ เป็น ส่วนใน service นะครับ
Code (C#)
[WebMethod]
public void addOrder(string orderID, string orderDate, string orderTime, string staffID, string custID, string recvFName, string recvLName, string recvAddress, string recvTel, double totalPrice, string orderComplete)
{
SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = ConfigurationManager.ConnectionStrings["StockProductInfo"].ConnectionString;
SqlCommand sqlComm = new SqlCommand();
sqlConn.Open();
SqlCommand cmd = new SqlCommand("SPaddOrder", sqlConn);
cmd.Parameters.AddWithValue("@OrderID", orderID);
cmd.Parameters.AddWithValue("@OrderDate", orderDate);
cmd.Parameters.AddWithValue("@OrderTime", orderTime);
cmd.Parameters.AddWithValue("@StaffID", staffID);
cmd.Parameters.AddWithValue("@CustID", custID); // error here FK constraint FK_tranOrder_masCustomer
cmd.Parameters.AddWithValue("@RecvFName", recvFName);
cmd.Parameters.AddWithValue("@RecvLName", recvLName);
cmd.Parameters.AddWithValue("@RecvAddress", recvAddress);
cmd.Parameters.AddWithValue("@RecvTel", recvTel);
cmd.Parameters.AddWithValue("@TotalPrice", totalPrice);
cmd.Parameters.AddWithValue("@OrderComplete", orderComplete);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
sqlConn.Close();
}
ส่วนอันนี้เป็นไฟล์ web page ที่เรียก service อะครับ
Code (C#)
R5.Sales_Service myAddOrder = new R5.Sales_Service();
myAddOrder.addOrder(orderID, date, time, staffID, custID, recvFName, recvLName, recvAddress, recvTel, totalPrice, "no");
ส่วนอันนี้ คือ Store Procedure ใน Database Server ครับ
Code
ALTER PROCEDURE [dbo].[SPaddOrder]
@OrderID varchar,
@OrderDate Date,
@OrderTime Time(0),
@StaffID varchar,
@CustID varchar,
@RecvFName varchar,
@RecvLName varchar,
@RecvAddress varchar,
@RecvTel varchar,
@TotalPrice decimal(8,2),
@OrderComplete varchar
AS
BEGIN
SET NOCOUNT ON
INSERT INTO tranOrder (Order_ID, Order_Date, Order_Time, Staff_ID, Cust_ID,
Receiver_FName, Receiver_LName, Receiver_Address, Receiver_Telephone,
Order_TotalPrice, Order_Complete)
VALUES (@OrderID, @OrderDate, @OrderTime, @StaffID, @CustID, @RecvFName, @RecvLName,
@RecvAddress, @RecvTel, @TotalPrice, @OrderComplete)
END
มันต้องแก้ยังไงน้อ คือจริงๆ แล้ว ผมมี FK สองตัว คือ StaffID กับ CustID
แต่ทำไมผมติดแค่ custID ผมล่ะงง มีใครพอ แนะนำได้มั่งครับ
Tag : - - - -
|
|
|
|
|
|
Date :
2010-05-06 20:27:20 |
By :
mixarstudio |
View :
1514 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มัน Error ที่ Insert ไม่ผ่านน่ะครับ น่าจะเป็นที่ Key หรือว่า FK ครับ
|
|
|
|
|
Date :
2010-05-07 06:39:11 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอ่อ แต่ key ที่มันบอกคือ custID
ผมก็เช็คดูแล้วมันก็น่าจะผ่านน่ะครับ
จะว่ามันไม่มีค่าใน custID ก็ไม่ใช่
เพราะผมลอง Response.write(custID) ออกมาดูแล้ว มันก็มีค่าเก็บอยู่
แล้วค่านั้นมันก็มีอยู่ใน masCustomer ด้วยครับ
ซึ่งมันก็ถูกต้องตามหลักการอยู่แล้ว
เพราะอย่าง staffID มันก็เป็น key เหมือนกัน
แล้วทำไมมันไม่ติดปัญหาเลยล่ะครับ
ผมล่ะ งง มันจะมีกรณีไหนอีกมั๊ยครับ
ที่จะเกิด error แบบนี้
|
|
|
|
|
Date :
2010-05-07 08:11:29 |
By :
mixarstudio |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อะไรคือ PK ครับ OrderID ?
ไม่มี PK คุณใช้ FK เลยหรือเปล่า
FK เกิดจากการรวมกันของ Cust_ID กับ Staff_ID ถ้าเป็นเช่นนั้น แสดงว่า ใน database คุณ มี Staff_ID+Cust_ID ที่ซ้ำกัน มันเลยไม่ยอมให้ Insert
เข้า Query
SELECT Staff_ID, Cust_ID FROM UTable WHERE Staff_ID = 'อะไรก่า' AND Cust_ID = 'อะหยั๋งก๋'
ถ้ามันมีจริงๆ นั่นละปัญหา ถ้าไม่มี ลอง มา post ใหม่ครับ
|
|
|
|
|
Date :
2010-05-07 10:59:13 |
By :
numenoy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|