Я делаю свою первую миграцию базы данных и пытаюсь воссоздать это sqlCommand
, чтобы оно добавило правильные значения к репрезентативным объектам.
string sqlCommand = "UPDATE WITestData SET " +
"Width01 = ?, Angle01 = ?, Comment01 = ?, " +
"Width02 = ?, Angle02 = ?, Comment02 = ?, " +
"Width03 = ?, Angle03 = ?, Comment03 = ?, " +
"Width04 = ?, Angle04 = ?, Comment04 = ?, " +
"Width05 = ?, Angle05 = ?, Comment05 = ?, " +
"Width06 = ?, Angle06 = ?, Comment06 = ?, " +
"Width07 = ?, Angle07 = ?, Comment07 = ?, " +
"Width08 = ?, Angle08 = ?, Comment08 = ?, " +
"Width09 = ?, Angle09 = ?, Comment09 = ?, " +
"Width10 = ?, Angle10 = ?, Comment10 = ? " +
"WHERE ReportNumber = @reportNumber";
var parameters = new object[31];
for (int i = 0; i < WITestData.WIData.Length; i++)
{
parameters[3 * i] = WITestData.WIData[i].Width;
parameters[3 * i + 1] = WITestData.WIData[i].Angle;
parameters[3 * i + 2] = WITestData.WIData[i].Comment;
} parameters[30] = WITestData.ReportNumber;
if (ExecuteNonQuery(sqlCommand, parameterList))
{
var index = m_DataManager.Database.WITestData.FindIndex(t => t.ReportNumber == WITestData.ReportNumber);
m_DataManager.Database.WITestData[index] = WITestData;
return true;
}
return false;
}
Я добавил следующее кfor (...) назначить каждому объекту отдельный параметр, чтобы он выводил правильные значения.
for (int i = 0; i < WITestData.WIData.Length; i++)
{
//input Parameters into sqlCommand
string widthParameter = $"@width{counter}";
string angleParameter = $"@angle{counter}";
string commentParameter = $"@comment{counter}";
using (SqlCommand command = new SqlCommand())
{
parameterList.Add(new SqlParameter(widthParameter, WITestData.WIData[i].Width));
parameterList.Add(new SqlParameter("@angle", angleParameter));
parameterList.Add(new SqlParameter("@comment", commentParameter));
parameterList.Add(command.Parameters.AddWithValue("@reportNumber", WITestData.ReportNumber));
command.Parameters.Clear();
}
parameters[3 * i] = WITestData.WIData[i].Width;
parameters[3 * i + 1] = WITestData.WIData[i].Angle;
parameters[3 * i + 2] = WITestData.WIData[i].Comment;
counter++;
}
Примечание. Я создал int counter = 1
и var parameterList = new List<SqlParameter>();
в верхней части метода.
Как ввести параметры ширины / угла / комментария в полеsqlCommand и убедитесь, что они правильно назначены со своими значениями?