Преобразовать текстовое поле в целое число - PullRequest
4 голосов
/ 23 августа 2010

Мне нужно преобразовать текст в текстовом поле моего кода xaml в целочисленное значение в C #. Я использую .NET 4.0 и Visual Studio 2010. Есть ли способ сделать это в тегах xaml сам или мне нужно написать конвертер в C Sharp. Я попробовал следующее, но не работает:

Convert.ToInt32(this.txtboxname.Text)

Любая помощь очень ценится. Спасибо.

Ответы [ 5 ]

13 голосов
/ 23 августа 2010

Предложите сделать это в своем коде перед отправкой на SQL Server.

 int userVal = int.Parse(txtboxname.Text);

Возможно, попробуйте проанализировать и при необходимости сообщить пользователю.

int? userVal;
if (int.TryParse(txtboxname.Text, out userVal) 
{
  DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here.");   }

Исключение, которое выПримечание означает, что вы не включаете значение в вызов хранимого процесса.Попробуйте установить точку останова отладчика в своем коде во время вызова в коде, который создает вызов SQL Server.

Убедитесь, что вы действительно присоединяете параметр к SqlCommand.

using (SqlConnection conn = new SqlConnection(connString))
{
    SqlCommand cmd = new SqlCommand(sql, conn);
    cmd.Parameters.Add("@ParamName", SqlDbType.Int);
    cmd.Parameters["@ParamName"].Value = newName;        
    conn.Open();
    string someReturn = (string)cmd.ExecuteScalar();        
}

Возможно, запустите SQL Profiler в вашей базе данных, чтобы проверить отправляемый / выполняемый оператор SQL.

6 голосов
/ 23 августа 2010

Вам не нужно писать конвертер, просто сделайте это в своем обработчике / коде:

int i = Convert.ToInt32(txtMyTextBox.Text);

ИЛИ

int i = int.Parse(txtMyTextBox.Text);

Свойство Text вашего текстового поля:String типа, поэтому вам нужно выполнить преобразование в коде.

1 голос
/ 03 августа 2014

Пример:

int x = Convert.ToInt32(this.txtboxname.Text) + 1 //You dont need the "this"
txtboxname.Text = x.ToString();

"x.ToString" - сделать целое число в строку, чтобы показать это в текстовом поле.

Результат:

  1. Вы вводите число в текстовое поле
  2. Вы нажимаете кнопку или что-то запускающее функцию.
  3. Вы видите, что ваш номер больше, чем ваш номер в одном в текстовом поле.

:)

0 голосов
/ 04 сентября 2018
int num = int.Parse(textBox.Text);

попробуйте это.У меня это сработало

0 голосов
/ 23 августа 2010

Если ваша база данных SQL допускает значения Null для этого поля, попробуйте использовать int? value, например:

if (this.txtboxname.Text == "" || this.txtboxname.text == null)
     value = null;
else
     value = Convert.ToInt32(this.txtboxname.Text);

Убедитесь, что Convert.ToInt32 с нулевым значением возвращает 0!

Convert.ToInt32(null) returns 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...