C# 使用c将文本框中的字符串值转换为int#
我有一个文本框,用户可以把是或否,一旦他们作出选择,然后我写一个表。但在将值写入表之前,我想更改它,因为该字段只接受1或0。我想对代码进行如下更改: 如果是,则将其更改为1 如果为否,则将其更改为0 一旦它被改变了,我将接受新的变量并将其插入到我的表中。这是我的密码:C# 使用c将文本框中的字符串值转换为int#,c#,asp.net,C#,Asp.net,我有一个文本框,用户可以把是或否,一旦他们作出选择,然后我写一个表。但在将值写入表之前,我想更改它,因为该字段只接受1或0。我想对代码进行如下更改: 如果是,则将其更改为1 如果为否,则将其更改为0 一旦它被改变了,我将接受新的变量并将其插入到我的表中。这是我的密码: string myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text.ToString(); sqlcmd.CommandText = "INSERT INTO
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;
要将是/否转换为布尔值,可以使用以下单行:
bool result = (myString == "yes") ? true : false;
如果数据库列只接受1或1(一个位),那么应该使用相应的UI元素,如复选框或单选按钮 但是,如果您必须使用文本框(无论出于何种原因),并且需要明确检查“是”和“否”,而不是“是”和“是”以外的任何内容:
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;
首先,如果您可以更改代码,请使用复选框。单选按钮甚至两项组合框更为可取。但是输入是/否?我不太友好 要回答您的问题,您应该使用以下选项:
int myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text.Equals("Yes", StringComparison.OrdinalIgnoreCase) ? 1 : 0;
差不多
string myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text;
sqlcmd.CommandText = "INSERT INTO MyTable(myvalue) VALUES(@myvalue)";
sqlcmd.Parameters.Add("@myvalue", SqlDbType.Bit, myValue == "Yes");
请注意这些扭曲的红线,VisualStudio团队为您投入了大量精力。正如上面的评论所指出的,复选框最适合这种输入。要求用户键入“是”或“否”都很好,但如果用户键入“可能”,您如何处理?此外,您必须说明“是”(大写)的计算结果与“是”(小写)的计算结果不同,等等 如果你除了使用文本框之外别无选择,那么下面的方法应该可以做到,但对于你更大的问题来说,这是一个糟糕的解决方案
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.
}
你不需要这样做:
Text.ToString()
因为Text
已经是字符串了。Text
已经是字符串了,你不需要使用它。为什么不使用复选框呢。这很简单……你试过什么了?问题是,他在寻找“是”或“否”,而不一定是“是”或其他任何东西。