错误:索引(从零开始)必须大于或等于零且小于参数列表的大小

本文关键字:小于 等于零 参数 列表 大于 索引 从零开始 错误 | 更新日期: 2023-09-27 18:09:05

我正在尝试将数据插入到我的数据库中,下面是命令:

 public static bool InsertUser(string Date, string Day, string HourFrom, string HourTo, int HoursWorked, int Where)
    {
    string sql = string.Format("INSERT INTO Tablee (Date, Day, HourFrom, HourTo, HoursWorked, Where)VALUES('{0}','{1}','{2}','{3}','{4}',{5},{6})", Date, Day, HourFrom, HourTo, HoursWorked, Where);
    return DAL.ExecuteNonQuery(sql) != 0;
}

现在我得到了我在主题中写的错误,它来自我构建字符串Sql("INSERT INTO…")的行。有人知道我该怎么修理它吗?

注:'{0}'.'{1}'..的目的是什么?我从一个旧的项目中复制了它,我不记得为什么它在那里,它是做什么的。

错误:索引(从零开始)必须大于或等于零且小于参数列表的大小

您有七个索引列出(0-6)和只有6个参数。

删除{6}

有这个调用:

string.Format("...{0}','{1}','{2}','{3}','{4}',{5},{6}...", parameters...);

你应该提供7个参数,从0到6,目前你只提供6个:

Date, Day, HourFrom, HourTo, HoursWorked, Where

这是错误

一些有创意的格式说明了你的问题:

VALUES(
'{0}',   '{1}',   '{2}',      '{3}',    '{4}',         {5},      {6})"
Date,    Day,     HourFrom,   HourTo,   HoursWorked,   Where           <<whoops

删除"6"或为其提供一个值