I have 2 lists:
List<string> ColumnNames = new List<string>();
List<string> ValueNames = new List<string>();
ColumnNames = names.Keys.ToList();
ValueNames = names.Values.ToList();
I'm trying to use this lists into MySql statement:
...
MySqlCommand command = conDataBase.CreateCommand();
command.CommandText = string.Format("insert into MyTable {0} values (?parameter)", string.Join(",", ColumnNames));
command.Parameters.AddWithValue("parameter", string.Join(",", ValueNames));
...
Here I take error in syntax
...
command.CommandText = "insert into MyTable (" + string.Join(",", ColumnNames) + ") values ('" + string.Join(",", ValueNames) + "')";
...
and
...
command.CommandText = "insert into MyTable (" + string.Join(",", ColumnNames) + ") values (?parameter)";
command.Parameters.AddWithValue("parameter", string.Join(",", ValueNames));
...
In last 2 Codes I'm taking error "Column count doesn't match value count at row 1, but
ColumnNames.Count = ValueNames.Count
I found solution: https://www.codeproject.com/Questions/1225444/How-to-use-column-names-from-list-into-mysql-inser
List<string> ColumnNames = names.Keys.ToList()
List<string> ValueNames = names.Values.ToList();
List<string> RevValueNames = new List<string>();
ValueNames.ForEach(x => RevValueNames.Add("'" + x + "'"));
string Query = string.Format("insert into MyTable ({0}) values ({1})", string.Join(",", ColumnNames), string.Join(",", RevValueNames));
command.CommandText = Query;