使用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;
正如在上面的评论中指出的那样,对于这种类型的输入,一个复选框是最好的。要求用户输入"是"或"否"都很好,但如果用户输入"可能",您该如何处理?此外,您还必须考虑"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团队为你做了很多努力。