Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 标识值的顺序不正确_C#_Sql_Sql Server_Identity Column - Fatal编程技术网

C# 标识值的顺序不正确

C# 标识值的顺序不正确,c#,sql,sql-server,identity-column,C#,Sql,Sql Server,Identity Column,我通过用户定义的表类型插入数据,并且以错误的顺序返回插入的标识值 以下是存储过程: 创建过程[dbo]。[InsertBulkAgency] @AgencyHeader作为AgencyType只读 像 开始 插入[代理] 插入的输出.Id 从@AgencyHeaders中选择*,'cm',GETDATE,'comp',GETDATE 终止 下面是保存标识值的C代码: using (SqlCommand cmd = new SqlCommand("InsertBulkAgency", myCon

我通过用户定义的表类型插入数据,并且以错误的顺序返回插入的标识值

以下是存储过程:

创建过程[dbo]。[InsertBulkAgency] @AgencyHeader作为AgencyType只读 像 开始 插入[代理] 插入的输出.Id 从@AgencyHeaders中选择*,'cm',GETDATE,'comp',GETDATE 终止 下面是保存标识值的C代码:

 using (SqlCommand cmd = new SqlCommand("InsertBulkAgency", myConnection))
            {
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@AgencyHeaders", SqlDbType.Structured).Value = dt;

                myConnection.Open();
                rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    sample.Add(rdr["Id"].ToString());
                }
                myConnection.Close();

            }
列表中的返回值应该是连续的,但它们是完全随机的。如何检索插入值的正确顺序?

是否尝试按添加顺序

插入dbo。[代理机构] 插入的输出.Id 从@AgencyHeaders中选择*,'cm',GETDATE,'comp',GETDATE 按插入的.Id排序; 或者在应用程序中恢复数据后使用.sort

如果您没有ORDER BY,则不应期望SQL Server提供任何特定的订单。如果你刚才说给我这个集合,为什么列表中的值应该是按顺序排列的呢?为什么SQL Server要预测您希望以任何特定方式对它们进行排序?如果它确实假设您希望对数据进行排序,为什么不选择名称或任何其他列作为排序依据?事实是,SQL Server会选择它认为最有效的排序顺序,如果您实际上告诉它您不在乎,就不用费心指定了


另外,既然'55'<'9',为什么要将Id转换为也会导致排序问题的字符串?我建议您确保列表使用的是数字类型而不是字符串,否则它将不会总是按照您期望的方式进行排序。

要么在查询中添加ORDER BY子句,要么只是。对C列表进行排序,对吗?我会对最终结果进行排序