询问此错误:其他信息:索引(从零开始)必须大于或等于零并且小于参数列表的大小

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

这是我第一次。嗨,我正在做一个SQL项目,并写了一个C#程序来检索它。但我无法解决这个错误。请帮帮我。谢谢。这里是我的代码:

 private void Insert_Click(object sender, EventArgs e) {   
        var db = new DataClasses1DataContext();
        db.ExecuteCommand("INSERT INTO Students VALUES ({105},{ali},{askari},  {ma@yahoo.com},{091345})",
        new object[] { textBox1.Text, textBox2.Text, textBox3.Text, textBox5.Text, textBox6.Text });
        dataGridView1.DataSource = db.Students;
 }

询问此错误:其他信息:索引(从零开始)必须大于或等于零并且小于参数列表的大小

您应该更改

INSERT INTO Students VALUES ({105},{ali},{askari}, {ma@yahoo.com},{091345}

"INSERT INTO Students VALUES ({0},{1},{2},{3},{4})"

这是一个简单的字符串格式问题,其中参数需要采用该格式。

ExecuteCommand接受一个params[]对象和一个格式字符串。看起来这就是你想要使用的。

在这种情况下,你错了,应该是:

db.ExecuteCommand("INSERT INTO Students VALUES ({0},{1},{2},{3},{4})", 
                              105, "ali", "askari", "ma@yahoo.com", 091345);

参数编号基于位置:

//db.ExecuteCommand("INSERT INTO Students VALUES ({105},{ali},{askari},  {ma@yahoo.com},{091345})",
 db.ExecuteCommand("INSERT INTO Students VALUES ({0},{1},{2},{3},{4})",
   new object[] { textBox1.Text, textBox2.Text, textBox3.Text, textBox5.Text, textBox6.Text });

目前还不清楚您想要的{105},{ali},{askari}, ...值是什么意思。

您可能还需要在字符串值周围加引号,例如:

 db.ExecuteCommand("INSERT INTO Students VALUES ({0}, '"{1}'", '"{2}'", '"{3}'", '"{4}'")",