附加信息:'附近的语法不正确?'

时间:2015-12-19 21:37:13

标签: sql sql-server odbc sqlcommand

我的代码抛出了主题中提到的此错误。我不知道原点,因为使用ODBC连接到mysql它可以工作,但使用SQL连接到SQL Server Express并不起作用。如何解决?

SqlCommand Command = new SqlCommand("insert into lojas (NIF, Loja, bloqueado, DataFim, lastupdate, Nome) values (?, ?, ?, ?, ?, ?)", connection);
Command.CommandType = CommandType.Text;
Command.Parameters.AddWithValue("@NIF", grid_lic.CurrentRow.Cells[1].Value);
Command.Parameters.AddWithValue("@Loja", grid_lic.CurrentRow.Cells[2].Value);        
Command.Parameters.AddWithValue("@Bloqueado", grid_lic.CurrentRow.Cells[3].Value);
Command.Parameters.AddWithValue("@DataFim", grid_lic.CurrentRow.Cells[4].Value);
Command.Parameters.AddWithValue("@lastupdate", grid_lic.CurrentRow.Cells[5].Value);
Command.Parameters.AddWithValue("@Nome", grid_lic.CurrentRow.Cells[6].Value);

connection.Open();
Command.ExecuteNonQuery();

1 个答案:

答案 0 :(得分:1)

?在SQL Server的t-sql语法中不是有效的参数占位符。您需要更新查询以获得命名参数:

insert into lojas (NIF, Loja, bloqueado, DataFim, lastupdate, Nome) 
values (@NIF, @Loja, @Bloqueado, @DataFim, @lastupdate, @Nome)

当您添加参数值时,AddWithValue调用中使用的参数名称将用于将值放在查询中的正确位置。