Не получается сделать запись в таблицу SQL
Есть словарь со значениями Dictionary<object, object> myPropertyResults и таблица с 50 столбцами. Мне нужно занести значения из myPropertyResults в таблицу, но всегда выводит NULL. Я же не могу все 60 значений вручную прописывать.
Я новичок и абсолютно не могу понять как мне это сделать.
private void ProcessorInfo()
{
SqlConnection sqlConnection = new SqlConnection("server=LAPTOP-NDOBE5PK; Trusted_Connection=Yes; DataBase=Win32Project;");
SqlCommand sqlCommand = sqlConnection.CreateCommand();
sqlConnection.Open();
Dictionary<object, object> myPropertyResults = new Dictionary<object, object>();
ManagementClass myManagementClass = new ManagementClass("Win32_Processor");
ManagementObjectCollection myManagementCollection = myManagementClass.GetInstances();
PropertyDataCollection myProperties = myManagementClass.Properties;
foreach (var obj in myManagementCollection)
{
foreach (var myProperty in myProperties)
{
bool keyExists = myPropertyResults.ContainsKey(myProperty.Name);
if (keyExists == false)
{
myPropertyResults.Add(myProperty.Name,
obj.Properties[myProperty.Name].Value);
}
else
{
myPropertyResults[Name] = obj.Properties[myProperty.Name].Value;
}
}
foreach (var myPropertyResult in myPropertyResults)
{
InfoList.Items.Add(myPropertyResult.Key + ":" + myPropertyResult.Value);
string cmdText = "INSERT INTO [ProccesorTab] VALUES (myPropertyResults)";
SqlCommand cmd = new SqlCommand(cmdText, sqlConnection);
cmd.Parameters.AddWithValue("myProperty.Name", myPropertyResults);
}
}
Ответы (1 шт):
Автор решения: user11354240
→ Ссылка
Оптимальнее всего будет сделать на сервере под это дело user-defined table type, данные залить в DataTable, и её использовать как значение параметра с типом этого созданного UDTT. Параметр либо передавать в хранимую процедуру, либо сразу в adhoc statement. Решение чуть хуже - сериализовать данные в XML, для вставки парсить его на сервере (опять же, внутри ХП или adhoc).