Ich probiere diesen Code, aber nicht richtig funktioniert (nur der erste Wert zur Datenbank hinzugefügt zweiten Wert wird nicht eingefügt). Prozedur oder Funktion einfügen zu viele Argumente angegeben hat, dann ist dies der angezeigte FehlerProzedur oder Funktion Insert hat zu viele Argumente angegeben
foreach (DataGridViewRow row in dgItems.Rows)
{
for (int i = 0; i < dgItems.Rows.Count; i++)
{
DataGridViewCellCollection c = dgItems.Rows[i].Cells;
//dtl.DOC_TYPE = type;
info1.DOC_NO = DOC_NO.Text;
info1.ITEM_CODE = c["cCode"].Value.ToString();
info1.ITEM_DESC_ENG = c["cName"].Value.ToString();
info1.UOM = c["cUnit"].Value.ToString();
info1.PRICE = Convert.ToDecimal(c["cPrice"].Value.ToString());
info1.QUANTITY = Convert.ToInt32(c["cQty"].Value.ToString());
info1.ITEM_DISCOUNT = Convert.ToDecimal(c["cDisc"].Value.ToString());
info1.DISC_TYPE = c["DiscTypes"].Value.ToString();
info1.DISC_VALUE = c["DiscValues"].Value.ToString();
info1.SERIALNO = c["SerialNos"].Value.ToString();
info1.BRANCH = lg.Branch;
if (hasTax)
{
info1.ITEM_TAX_PER = Convert.ToDecimal(c["cTaxPer"].Value.ToString());
info1.ITEM_TAX = Convert.ToDecimal(c["cTaxAmt"].Value.ToString());
}
if (hasBatch)
{
info1.BATCH = c["cBatch"].Value.ToString();
info1.EXPIRY_DATE = DateTime.ParseExact(c["cExpDate"].Value.ToString(), "dd/MM/yyyy", null).ToString("MM/dd/yyyy");
}
//cmd.CommandText += " UNION ALL ";
dtl.Insertdtl_Meth(info1);
}
}
Das Problem liegt wahrscheinlich in der 'Insertdtl_Meth' Methode. Setzen Sie die Parameter bei jedem Anruf zurück oder sammeln sie sich an? – Crowcoder
Wo initialisierst du 'info1'? Dieses Beispiel ist nicht vollständig. – user3185569
ein [mcve] wäre toll –