2016-02-16 58 views
-2

我想输入一些数据到我有权访问的数据库中,但只有在某些行(由于条件你会在代码中看到),但它会抛出错误:'查询输入必须包含至少一个表或查询。'但我不确定我需要做些什么来解决这个问题。C#访问INSERT INTO查询与条件

我的代码是:

for (int i = 0; i < numberOfPlayers; i++) 
{ 
    OleDbConnection connection = new OleDbConnection(CONNECTION STRING HERE); 

    OleDbCommand command = new OleDbCommand(); 

    connection.Open(); 
    command.CommandText = "INSERT INTO TotalPlayerName ([Team], [Complete]) VALUES ('1', true) WHERE Team = '' AND Complete = false AND Rating = " + team1List[i]; 
    command.CommandType = CommandType.Text; 
    command.Connection = connection; 

    command.ExecuteNonQuery(); 
    connection.Close(); 
} 

这里是数据库的设计视图: enter image description here

+1

您是否尝试插入新数据或更新现有数据? – juharr

+0

可能重复http://stackoverflow.com/questions/21437458/getting-the-error-query-input-must-contain-at-least-one-table-or-query 您似乎试图做一个UPDATE并使用INSERT来完成它。 –

+0

为什么不把'command.ExecutNonQuery()'包在'try {} catch {}的周围,看看它是否在抛出一个错误..你的表的主键是什么..是它'团队'尝试插入一个像'99'这样的数字只是为了看到..我敢打赌,这是一个尝试插入重复键的问题也转换你的插入语句来利用'参数' – MethodMan

回答

1

我想你想更新一下行不插入,所以语句看看像

command.CommandText = "update TotalPlayerName set Team = '1', Complete = true WHERE Team = '' AND Complete = false AND Rating = " + team1List[i] 

编辑:修正的SQL语法问题

+0

谢谢,这已经停止了这个错误,但它并没有将Complete列更新为true,为什么? – Alby

+0

@Alby您的桌子在访问时的设计如何?你可以发表一张你的表格的图片(所有字段的定义) – Pazi01

+0

@Alby我纠正了我的SQL知道它应该适合你。 – Pazi01