我遇到了SqlServerCe的一个小问题。 当使用下面的sqlString来执行ExecuteNonQuery();命令我得到下面的错误。嵌套的SELECT问题
string sqlString = "INSERT INTO Images (UID, Name) " +
"VALUES ((SELECT ID FROM Contributors WHERE ID = @UID), @Name);";
给出了这样的错误:
There was an error parsing the query. [ Token line number = 1,Token line offset = 41,Token in error = SELECT ]
有什么建议?
方法
public static void InsertImage(Contributor contObj, string ImageName)
{
string sqlString = "INSERT INTO Images (UID, Name) " +
"VALUES ((SELECT ID FROM [Contributors] WHERE ID = @UID), @Name);";
using (SqlCeConnection sqlConnection =
new SqlCeConnection(WebConfigurationManager.ConnectionStrings["DefaultSQL"].ConnectionString))
{
SqlCeCommand sqlCommand = new SqlCeCommand(sqlString, sqlConnection);
sqlCommand.Parameters.AddWithValue("@UID", contObj.ID);
sqlCommand.Parameters.AddWithValue("@Name", ImageName);
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
}
}
@Name不是贡献者。 Images.UID和Contributors.ID – user1027620
之间存在外键关系我认为您可能需要关键字VALUES。 – JHS
由于您使用的是参数,因此在执行时需要将@Name值告诉它。你可以编辑你的问题发布你的完整代码吗?那么我可以告诉你。 – Taryn