Raz*_*ton 2 c# sql sql-server sql-delete
我想删除特定列上具有最高值的行
(我知道有答案,但由于某些原因它们都不适用于我)
我在Visual Studio c#中使用SQL进行的所有编码
我的数据库:小时
Hours_Left | Hours_Spent | Time_Written | Mode | Time_Start | Time_End | Index
==============================================================================
aa | bb | cc | dd | ee | ff | 3
gg | hh | ii | jj | kk | ll | 4
mm | nn | oo | pp | qq | rr | 5
ss | tt | uu | vv | ww | xx | 6
[Hours_Left] VARCHAR (MAX) NULL,
[Hours_Spent] VARCHAR (MAX) NULL,
[Time_Written] VARCHAR (MAX) NULL,
[Mode] VARCHAR (MAX) NULL,
[Time_Start] VARCHAR (MAX) NULL,
[Time_End] VARCHAR (MAX) NULL,
[Index] INT IDENTITY (1, 1) NOT NULL
Run Code Online (Sandbox Code Playgroud)
我的代码:
if (con.State != ConnectionState.Open)
{
con.Close();
con.Open();
}
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"DELETE FROM hours WHERE Index = select max(Index) from hours limit 1";
cmd.ExecuteNonQuery();
con.Close();
Display_Data();
Run Code Online (Sandbox Code Playgroud)
什么时候commandText都不要工作
@"DELETE TOP(1) FROM hours
WHERE Index in
(SELECT TOP(1) Index FROM hours
ORDER BY Index DESC);";
Run Code Online (Sandbox Code Playgroud)
我想删除最高索引的整行 - 即删除索引为6的行,它是最高索引
错误在:
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
错误是:
System.Data.SqlClient.SqlException:'索引'附近的语法不正确.如果这是作为表提示的一部分,则现在需要A WITH关键字和括号.有关正确的语法,请参阅SQL Server联机丛书.