使用c#将文本框中的字符串值转换为整型

本文关键字:字符串 转换 整型 文本 使用 | 更新日期: 2023-09-27 18:02:03

我有文本框,用户可以把是或否,一旦他们做出选择,然后我写到一个表。但是在我把值写进表之前,我想改变它,因为字段只需要1或0。我想在代码后面做这样的改变:如果是YES,则将其更改为1如果是NO,则将其更改为0一旦它被改变,然后我将采取新的变量,并将其插入到我的表。下面是我的代码:

string myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text.ToString();
 sqlcmd.CommandText = "INSERT INTO MyTable(myvalue) VALUES(@myvalue)";                 
                    sqlcmd.Parameters.Clear();
                    sqlcmd.Parameters.Add("@myvalue", SqlDbType.VarChar).Value = ServerName;

使用c#将文本框中的字符串值转换为整型

正如在上面的评论中指出的那样,对于这种类型的输入,一个复选框是最好的。要求用户输入"是"或"否"都很好,但如果用户输入"可能",您该如何处理?此外,您还必须考虑"YES"(大写)的计算结果与"YES"(小写)的计算结果不同,等等。

如果你别无选择,只能使用文本框,那么下面的代码就可以了,但对于你更大的问题来说,这是一个糟糕的解决方案。

string myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text;
if (myvalue.Equals("YES", StringComparison.OrdinalIgnoreCase))
{
    //Change to 1
}
else if (myvalue.Equals("NO", StringComparison.OrdinalIgnoreCase))
{
    //Change to 0
}
else
{
    //You should probably tell the user that their input is in an incorrect
    //format here.
}

如果你的数据库列只接受1或1(位),那么你应该使用相应的UI元素,如复选框或单选按钮。

但是如果你必须使用一个文本框(无论出于什么原因),你需要明确地检查"是"answers"否",而不是"是"和其他任何东西:

bool valueIsTrue = false;
string myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text;
if (myValue.ToLower() == "yes")
   valueIsTrue = true;
else if (myValue.ToLower() == "no")
   valueIsTrue = false

如果你使用的是一个复选框,你可以简单地这样做:

bool value = ((CheckBox)DV_Port.FindControl("chkMyValue")).Checked;

首先,如果可以更改代码,请使用复选框。单选按钮或甚至是包含两个项目的组合框更容易接受。但是输入yes/no呢?在我看来不是很友好。

要回答你的问题,你应该用下面的句子:

int myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text.Equals("Yes", StringComparison.OrdinalIgnoreCase) ? 1 : 0;

要将是/否转换为布尔值,可以使用这一行:

bool result = (myString == "yes") ? true : false;

类似

string myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text;
sqlcmd.CommandText = "INSERT INTO MyTable(myvalue) VALUES(@myvalue)";                 
                    sqlcmd.Parameters.Add("@myvalue", SqlDbType.Bit, myValue == "Yes");

注意那些弯弯曲曲的红色线条,Visual Studio团队为你做了很多努力。