Bitte helfen Sie mir auf die Ursache dieses Fehlers zu identifizierenFalsche Syntax in der Nähe des Schlüsselwortes 'JOIN'. mit asp.net
falsche Syntax nahe dem Schlüsselwort "JOIN
Hier ist der Code:
Label name = (Label)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("lblName");
string queryGuitarItems = "DELETE FROM stringInstrumentItem JOIN brand ON stringInstrumentItem.brandId = brand.brandId WHERE stringInstrumentItem.brandId IN(SELECT brand.brandId FROM brand WHERE name = @brand)";
using (SqlConnection connectionGuitarItems = new SqlConnection(ConfigurationManager.ConnectionStrings["musicStoreConnection"].ToString()))
{
using (SqlCommand commandGuitarItems = new SqlCommand(queryGuitarItems, connectionGuitarItems))
{
connectionGuitarItems.Open();
commandGuitarItems.Connection = connectionGuitarItems;
commandGuitarItems.Parameters.Add(new SqlParameter("@brand", name.Text));
commandGuitarItems.ExecuteNonQuery();
connectionGuitarItems.Close();
commandGuitarItems.Parameters.Clear();
}
}
Wenn Sie SQL Server Management Studio öffnen und diese Abfrage ausführen - ' DELETE FROM stringInstrumentItem JOIN Marke ON stringInstrumentItem.brandId = brand.brandId WHERE stringInstrumentItem.brandId IN (SELECT brand.brandId FROM Marke WHE RE Name = 'Markenwert hier') 'Sie werden den gleichen Fehler sehen. Sie müssen diese Abfrage in Management Studio bearbeiten und dann versuchen, sie in Ihrer App zu verwenden. Das Problem ist ein SQL-Problem - nicht C# oder ASP.NET. – mjwills
Sie können nur aus einer Tabelle löschen, nicht aus einer Verknüpfung über mehrere Tabellen. Aus welcher Tabelle möchten Sie Datensätze löschen? – oerkelens
Sie brauchen übrigens den Subselect überhaupt nicht. Dies würde Sie die gleichen Datensätze bekommen, vorausgesetzt, Sie würden ein 'SELECT *' anstelle eines 'DELETE' tun:' DELETE FROM stringInstrumentItem s JOIN Marke b ON s.brandId = b.brandId WHERE b.name = @ Marke' – oerkelens