Как я могу получить системный тип значения, которое я получаю из формы / строки? - PullRequest
2 голосов
/ 07 августа 2011

Я никогда не пробовал что-то подобное, поэтому мне нужна ваша помощь.

У меня есть следующий код:

    public int AddChannel(NameValueCollection FormValues)
    {
        string Keys = string.Join(",",FormValues.AllKeys);
        string Values = string.Join(",", FormValues.AllKeys.Select(key => String.Format("\"{0}\"", HttpContext.Current.Server.HtmlEncode(FormValues[key]))));

        return InsertQuery("INSERT INTO channels (" + Keys + ") VALUES (" + Values + ");");
    }

при обработке некоторые поля должны быть целыми числами, в противном случаеMySQL запрос не проходит.Как я могу проверить и преобразовать KeyValue в правильный тип?

1 Ответ

1 голос
/ 07 августа 2011

Короче, нет.Данные, поступающие с поста http, являются текстовыми.Вы могли бы попытаться сделать вывод, что 123 - это , вероятно, число, но это небезопасно, поскольку "123" - совершенно корректная строка.Лично я надеюсь, что код знает схему заранее или может получить доступ к схеме.А из схемы примените правильные преобразования (а затем добавьте значения через параметры соответствующих типов).

...