Просто для полноты SQL-выражение Chinjoo, вероятно, будет выглядеть примерно так:
mySqlQueries.insertChatUser = "insert into ChatUsers (UserName, Password, FirstName, LastName, sex) values (?,?,?,?,?);";
Это известно как параметризованная вставка, где каждый вопросительный знак представляет один из его параметров. В этом простом примере порядок параметров в коллекции параметров в коде должен соответствовать порядку имен столбцов в операторе SQL.
Хотя это и менее элегантно, чем использование функции, исправление для его нулевой проблемы выглядело бы примерно так для одного из его параметров:
OdbcParameter LastName = new OdbcParameter("@LastName", u.LastName);
заменяется на
// if the value is "null" return DBNull, else just the value
OdbcParameter LastName = new OdbcParameter("@LastName",
(u.LastName == null) ? System.DBNull.Value : (object)u.LastName);
По крайней мере, в моем коде (который немного отличается) требуется внутреннее приведение к типу объекта, поскольку в противном случае компилятор не уверен, какой тип должен возвращать оператор?:
Надеюсь, это поможет любому, кто сравнительно не знаком с параметризацией и т. Д.
Никакой критики Чинджу не подразумевалось - его публикации помогли мне! Просто думал, что поделюсь для менее опытных. Я ни в коем случае не эксперт, поэтому примите все, что я скажу, с долей соли.