Ситуация: у меня есть этот метод для вставки списка в одну из моих SQL серверных таблиц:
public void InsertDataAtOnce(List<string> values, List<string> millisecs, string table, string[] parameters)
{
connection = new SqlConnection(connectionString);
query = $"INSERT INTO {table} ({parameters[0]}, {parameters[1]}) VALUES (@{parameters[0]}, @{parameters[1]})";
try
{
connection.Open();
command = new SqlCommand(query, connection);
command.Parameters.Add($"@{parameters[0]}", SqlDbType.NVarChar);
command.Parameters.Add($"@{parameters[1]}", SqlDbType.NVarChar);
for (int i = 0; i <millisecs.Count-2; i++)
{
//command.Parameters.Clear();
command.Parameters[$"@{parameters[0]}"].Value = millisecs[i];
command.Parameters[$"@{parameters[1]}"].Value = values[i];
command.ExecuteNonQuery();
}
command.Dispose();
connection.Close();
}
catch (Exception ex)
{
Console.WriteLine("Connection Error");
Console.WriteLine(ex);
}
}
Представьте, что информация о моей вставленной таблице должна быть такой (моя таблица должна содержать около 1700 значений) и я передаю эту информацию методу:
1. 0.5 15
2. 0.6 24
3. 0.7 29
4. 0.8 32
5. 0.9 45
Однако, когда я открываю SQL Server Management Studio и проверяю вставленные данные, он смешивает порядок значений, поэтому с этими данными получается результат будет:
1. 0.5 15
2. 0.6 24
3. 0.9 45
4. 0.8 32
5. 0.7 29
и так далее. Когда у меня есть мои данные, он смешивает данные в виде кусков, поэтому первые несколько сотен значений будут в порядке, затем он переходит к значениям, которые должны быть в конце или в середине, возвращается на некоторое время к первым значениям. и так далее.
Так в чем здесь проблема? Я проверил списки, которые я передаю, и они, кажется, для того, чтобы я добавил данные, как они должны быть.