Ich möchte meine Amount
Spalte zusammenzufassen, aber ich erhalte diese FehlermeldungIndex war außerhalb der Grenzen des Arrays SqlDataReader.GetDecimal
Zusätzliche Informationen: Index außerhalb der Grenzen des Arrays war. Hier
ist die Definition des Wägetisch aus SQL-Datenbank:
CREATE TABLE [dbo].[Balance]
(
[BalanceID] [int] IDENTITY(1,1) NOT NULL,
[Sn] [nvarchar](50) NULL,
[Description] [nvarchar](1000) NULL,
[Date] [date] NULL,
[Amount] [decimal](8, 0) NULL
)
Hier ist der Code C#, die die Tabelle über SQL Inline greift
cn.Open();
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select sum(Amount) from Balance where [email protected] and Date Between @SD and @ED";
cmd.Parameters.Add(new SqlParameter("@sn", txtSn.Text));
cmd.Parameters.Add(new SqlParameter("@SD", DTPStart.Text));
cmd.Parameters.Add(new SqlParameter("@ED", DTPEnd.Text));
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Debt = reader.GetDecimal(4);
}
reader.Close();
cn.Close();
Jede Hilfe wird sehr geschätzt !
Woher erhalten Sie den Fehler? – Backs
Wenn Sie nur einen einzelnen Wert wünschen, warum nicht ExecuteScalar verwenden? –