0

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

 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;

 }
4

3 回答 3

1

你应该改变

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

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

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

于 2013-08-21T16:02:45.500 回答
1

ExecuteCommand接受一个 params[] 对象和一个格式字符串。看起来这是您尝试使用的。

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

db.ExecuteCommand("INSERT INTO Students VALUES ({0},{1},{2},{3},{4})", 
                              105, "ali", "askari", "ma@yahoo.com", 091345);
于 2013-08-21T16:03:19.950 回答
1

参数编号是基于位置的:

//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}\")",
于 2013-08-21T16:03:31.450 回答