Ich versuche unten Code zum Einfügen von Datensätzen in die Datenbank über eine gespeicherte Prozedur.Aktivieren Sie zum Einfügen von Daten in SQL Server mithilfe einer gespeicherten Prozedur
Zum ersten Mal Schleife erfolgreich Datensatz einfügen, aber nach dem zweiten Mal seines zeigt mir Fehler auf ExecuteNonQuery
:
Prozedur oder Funktion SP_FUNCTIONAL_TITLE_MASTER_INSERT angegeben zu viele Argumente hat.
Bitte helfen Sie.
public int InsertData(DataTable objLst)
{
string query = "SP_FUNCTIONAL_TITLE_MASTER_INSERT";
try
{
SqlCommand cmdCommand = new SqlCommand(query, ConnectionClass.openConnection());
foreach (DataRow dr in objLst.Rows)
{
cmdCommand.CommandType = CommandType.StoredProcedure;
cmdCommand.Parameters.AddWithValue("@CODE",Convert.ToInt64(dr["Code"]));
cmdCommand.Parameters.AddWithValue("@Designation", dr["Designation"]);
cmdCommand.Parameters.AddWithValue("@Group", dr["Group"]);
cmdCommand.ExecuteNonQuery();
IsSavedCount += 1;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
ConnectionClass.CloseConnection();
}
return IsSavedCount;
}
Können Sie Ihre sp Code hier posten too – Izzy
Der Fehler ist ziemlich klar, Sie geben der gespeicherten Prozedur zu viele Parameter an. Geben Sie nur die an, die es benötigt. (Beachten Sie, dass Sie die Parameter * in einer Schleife * hinzufügen, also fügen Sie für jede Zeile in 'objLst' drei Parameter hinzu. Wenn es 10 Zeilen gibt, hat die gespeicherte Prozedur wirklich 30 Parameter mit wiederholten Namen?) – David
Ja. Lieber Mohammed, kannst du lesen? LESEN SIE DIE DEFINITION DES SP. Sehen Sie, welche Parameter benötigt werden. Dann erkenne, dass Programmieren nicht wie Geld ist. Während Sie nie zu viel Geld haben können, können Sie zu viele Parameter haben. – TomTom