Я не могу вставить продукт expirydate ?
У меня есть таблица PurchaseInvoice Details, где у меня есть столбец pid_proexpiry, где я не могу добавить дату истечения срока действия.
Вот мой столик :
CREATE TABLE purchaseInvoiceDetails ( pid_id bigint IDENTITY NOT NULL, pid_purchaseID bigint NOT NULL, pid_proID int NOT NULL, pid_proquan int NOT NULL, pid_totprice money NOT NULL, pid_proexpiry date NULL )и это моя хранимая процедура :
Create procedure [dbo].[st_insertPurchaseInvoiceDetails] @purchaseID bigint, @proID int, @quan int, @totPrice money, @proExpiry date As insert into purchaseInvoiceDetails values (@purchaseID,@proID,@quan, @totPrice,@proExpiry)
Что я уже пробовал:
Я использовал эту функцию :
int pidcount; public int insertPurchaseInvoiceDetails(Int64 purID,Int64 proID,int quan,float totPrice, DateTime? expiry=null) { try { SqlCommand cmd = new SqlCommand("st_insertPurchaseInvoiceDetails", MainClass.con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@purchaseID",purID); cmd.Parameters.AddWithValue("@proID", proID); cmd.Parameters.AddWithValue("@quan", quan); cmd.Parameters.AddWithValue("@totPrice", totPrice); if (expiry == null) { cmd.Parameters.AddWithValue("@proExpiry", DBNull.Value); } else { cmd.Parameters.AddWithValue("@proExpiry", expiry); } MainClass.con.Open(); pidcount = cmd.ExecuteNonQuery(); MainClass.con.Close(); } catch (Exception ex) { MainClass.con.Close(); MainClass.ShowMSG(ex.Message, "Error....", "Error"); } return pidcount; }
и вот как я вызываю функцию :
if (expiryPicker.Value.Date == DateTime.Now.Date) { co += i.insertPurchaseInvoiceDetails(purchaseinvoiceID, Convert.ToInt32(row.Cells["proIDGV"].Value.ToString()), Convert.ToInt32(row.Cells["quantGV"].Value.ToString()), Convert.ToSingle(row.Cells["totalGV"].Value.ToString())); } else { co += i.insertPurchaseInvoiceDetails(purchaseinvoiceID, Convert.ToInt32(row.Cells["proIDGV"].Value.ToString()), Convert.ToInt32(row.Cells["quantGV"].Value.ToString()), Convert.ToSingle(row.Cells["totalGV"].Value.ToString()), Convert.ToDateTime(row.Cells["expiryGV"].Value.ToString())); }Это я уже пробовал, но в базе данных показывается нулевое значение в столбце pid_ProExpiry. Могу ли я получить какое-либо решение для этого?
Я хочу вставить только те даты, которые имеют срок годности, такие как еда и т. д.
ZurdoDev
Отладьте свой код. Это очень, очень легко исправить.