0
の境界外だった私は、私のAmount
列を総括したいが、私はこのエラーメッセージインデックスが配列SqlDataReader.GetDecimal
追加情報を受け取る:インデックスが配列の範囲外でした。ここ
SQLデータベースから残高テーブルの定義である:
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
)
ここでテーブルにアクセスコードC#はSQLインライン介しある
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();
すべてのヘルプははるかに理解されるであろう!
どこでエラーが発生しますか? – Backs
単一の値だけが必要な場合は、ExecuteScalarを使用しないでください。 –