Я ищу решение для вставки некоторых данных в таблицу, используя 3 параметра, первый - это имя таблицы, а второй - список с классом, который имеет свойство name и value.
У меня есть частично решение (ниже) для этого, но я не думаю, что это рекомендуется, поэтому я ищу лучшую практику для этого.
Если это возможно, я хотел бы предложить создать это с использованием параметров, чтобы избежать инъекций.
private void InsertMetada(string deviceType, List<DeviceFields> deviceFields)
{
DataBaseConnection database = new DataBaseConnection ();
database.Open();
StringBuilder strb = new StringBuilder();
stb.Append(string.Format("INSERT INTO DEVICE_{0} ( ", deviceType.ToString().ToUpper()));
foreach (var item in deviceFields)
{
strb.Append(string.Format(" {0}, ",item.name.ToString()));
}
stb.Append(") VALUES ( ");
foreach (var item in deviceFields)
{
strb.Append(string.Format(" '{0}', ", item.value.ToString()));
}
strb.Append(")");
database.executeQuery(strb.ToString());
database.Close();
}
РЕДАКТИРОВАНИЕ: Не думаю, что я был очень ясен в своем вопросе.
В этом случае DeviceFields.item.name
имеет то же имя поля таблицы.
Что мне нужно, так это гарантировать создание разных свойств устройства для разных типов устройств в разных таблицах.
Возможно, моя точка зрения неверна, но я подумал, что если бы я разделил таблицы, я мог бы выполнить быстрый поиск.
В этом примере моя таблица (DEVICE_KEYBOARD) выглядит так:
> FIELD NAME | TYPE
-------------|---------
language | varchar
key | varchar
isMultimedia | varchar
deviceID | varchar
и список выглядит как
> DeviceFields[0]:
name = language
value = en-us
> DeviceField[1]:
name = key
value = 102
> DeviceField[2]:
name = isMultimedia
value = Yes
> DeviceField[3]:
name = deviceID
value = 0000-0000-00000-00000
А вторая таблица, например, выглядит так:
TABLE DEVICE_SPEAKER
> FIELD NAME | TYPE
--------------|---------
rms | varchar
remoteControl | varchar
subwoofer | varchar
deviceID | varchar
У него есть все поля устройства в первой таблице, но эти свойства специфичны для каждого типа устройства ...
Идея состоит в том, чтобы иметь возможность создать новое свойство, создающее новый столбец, когда пользователь нажимает на кнопку ADD в этой таблице с префиксом "DEVICE_ {DEVICE TYPE}" *
Я могу перечислить все поля при подготовке списка, мой вопрос в том, чтобы узнать, есть ли лучший вариант для создания этого материала, и что может быть безопасно и быстро.