如何在wpf中将int转换为字符串?

时间:2017-03-16 01:50:55

标签: c# mysql

我正在编写与mysql连接的C#程序。在我的sql中,我有两个表,一个叫做car,另一个叫做model。在我的car表中,我有一个名为modele_vehiclue的列,数据类型为int,也是一个外键。第二个表名为model,由两列组成modele_vehiclue数据类型int和model_name varchar 问题开始时,我运行我的程序并在我的框中输入数据,它说你可以将int转换为var char值。这是我在c#中使用的代码。 如果你能帮我解决这个问题,你就是在为我的一天做好准备。

Array
        (
            [2017-03-17,2017-03-23] => Mar 17-23, 2017
            [2017-03-10,2017-03-16] => Mar 10-16, 2017
            [2017-03-03,2017-03-09] => Mar 3-9, 2017
            [2017-02-24,2017-03-02] => Mar 24-2, 2017
            [2017-02-17,2017-02-23] => Feb 17-23, 2017
        )

2 个答案:

答案 0 :(得分:1)

我认为在这种情况下Parameters.Add更适合指定值的DataType。为此,您可以使用SqlDbType Enumeration,也可以使用int.Parse()int.TryParse()进行解析。所以你可以尝试这样的事情:

int modele = 0;
if(int.TryParse(modele_vehiclue.Text, out modele)
{
   cmd.Parameters.Add("@modele", SqlDbType.Int).Value = modele;
}
else
{
    // display message that invalid input
}

答案 1 :(得分:0)

正确地回答这个问题。

将字符串转换为int

使用各种内置方法之一,例如。

,可以轻松完成

int.Parse(string s):这会尝试将传递的值s转换为intInt32)。如果输入字符串s不是有效的int,则将抛出异常FormatException

此处列出了多个覆盖int.Parse Method

现在关键是字符串必须是有效的int表示其他任何内容都会抛出FormatException

所以这可以用作

cmd.Parameters.Add(new SqlParameter("@modele ", int.Parse(modele_vehiclue.Text)));

如何安全验证字符串

现在我们刚刚声明字符串必须是一个有效的int表示,以便成功。现在,如果您不是100%确定modele_vehiclue.Text属性的值是int的有效字符串表示,那么您应该首先验证它。

幸运的是,这很容易。有一个称为int.TryParse(string s, out int result方法的内置方法,它返回Boolean结果(不是int)。

所以这可以用作。

int modele = 0;
//int.TryParse returns a true\false on operation success. The value of modele will be the converted int or zero if the operation failed.
if(int.TryParse(modele_vehiclue.Text, out modele) == true)
{
     //conversion success
     cmd.Parameters.Add(new SqlParameter("@modele ", modele);
}
else
{
     //handle failed conversion
     throw new Exception("modele_vehiclue.Text must be an int");
}