插入第一个空行

时间:2016-02-24 15:22:54

标签: c# sql

IMAGE

我正在尝试在第一个空列处添加值。这是我的代码 -

SqlCommand cmd = my_con.CreateCommand();
                    cmd.CommandText = "insert into Contents(General_Exam) values(@CC)";
                    cmd.Parameters.AddWithValue("@CC", txtAddOption.Text);
                    cmd.ExecuteNonQuery();
                    comboBoxAddOption.Items.Add(txtAddOption.Text);
                    SqlCommand cmd1 = new SqlCommand("update TOP(1) Contents SET General_Exam=@CC where General_Exam IS NULL", my_con);
                    cmd1.Parameters.AddWithValue("@CC", txtAddOption.Text);
                    cmd1.ExecuteNonQuery();

但是当我插入值时,它不插入第一个空行而不是插入到最后一个空行。我认为这是因为Top(1)占据了最高行。但我想插入第一个空行中一个人知道我怎么能这样做请告诉我!提前致谢。

2 个答案:

答案 0 :(得分:1)

使用UPDATE TOP 1几乎肯定是一个错误。如果您需要做类似的事情,那么您的设计就会出现问题。同样重要的是要注意 - TOP x没有ORDER BY子句永远不会发生。如果您发现自己这样做,那么您应该回头看看您在逻辑和/或设计中犯了哪些错误。

您的表应该有一个主键,您应该根据它进行更新,而不是基于某些(目前)数据的排序。

答案 1 :(得分:0)

该主题讨论使用公共表表达式来控制使用order by的{​​{1}}中的update

how can I Update top 100 records in sql server

这里也讨论过:

SQL UPDATE TOP with ORDER BY?

top

注意:希望您可以使用;WITH CTE AS ( SELECT TOP 1 * FROM Contents WHERE General_Exam IS NULL ORDER BY [Chife Complains] DESC ) UPDATE CTE SET General_Exam=@CC 找到更好的选择。 (您可能会同样使用该显示器)