請幫助我在這個識別錯誤的原因關鍵字'JOIN'的語法不正確。使用asp.net
不正確的語法關鍵字「加入」
這裏附近是代碼:
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();
}
}
如果你打開SQL Server Management Studio並運行此查詢 - ' DELETE FROM stringInstrumentItem JOIN品牌ON stringInstrumentItem.brandId = brand.brandId WHERE stringInstrumentItem.brandId IN(SELECT brand.brandId FROM brand WHE RE name ='品牌價值在這裏')'你會看到同樣的錯誤。您需要在Management Studio中使用該查詢,然後嘗試在您的應用中使用它。這個問題是一個SQL問題 - 不是C#或ASP.NET。 – mjwills
只能從一個表中刪除,而不能從多個表中的聯接中刪除。你想從哪個表中刪除記錄? – oerkelens
順便說一句,你根本不需要子查詢。這會讓你得到相同的記錄,假設你使用'SELECT *'而不是'DELETE':'DELETE FROM stringInstrumentItem s JOIN brand b ON s.brandId = b.brandId WHERE b.name = @ brand' – oerkelens