2013-03-04 28 views
-3

我有文本框,用戶可以將「是」或「否」,一旦他們做出選擇,然後我正在寫入表格。但是在我把值寫入表之前,我想更改它,因爲該字段只有1或0。我想在後面執行代碼更改,如下所示: 如果是YES,則將其更改爲1 如果它是不,然後將其更改爲0 一旦它被更改,然後我將採取新的變量,並將其插入我的表中。這裏是我的代碼:將文本框中的字符串值轉換爲int使用c#

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; 
+0

您不需要這樣做:'Text.ToString()'as'Text'已經是一個字符串。 – CAbbott 2013-03-04 18:19:32

+0

'Text'已經是_string_,你不需要使用它。 – 2013-03-04 18:20:06

+1

爲什麼不使用複選框。 – arunlalam 2013-03-04 18:20:27

回答

1

正如在上面的評論中指出的那樣,複選框對於這種輸入是最好的。要求用戶輸入「是」或「否」都很好,但如果用戶輸入「Maybe」,你該如何處理?此外,你必須考慮「是」(大寫)不評估爲「是」(小寫)等等等等

如果你絕對沒有選擇,只能使用文本框,那麼下面應該做它,但是這對你的大問題是一個不好的解決方案。

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. 
} 
0

要轉換的是/否布爾,您可以使用此一行:如果你有一個數據庫列只接受1或1(有點

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

問題在於,他在尋找「是」或「否」不一定是「是」或其他任何東西。 – 2013-03-04 18:26:44

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; 
1

首先,如果您可以更改代碼,請使用複選框。一個單選按鈕甚至是一個2項目組合框更可接受。但是輸入是/否?不是很友好的IMO。

要回答你的問題,你應該使用下列內容:

int myvalue = ((TextBox)DV_Port.FindControl("txtmyvalue")).Text.Equals("Yes", StringComparison.OrdinalIgnoreCase) ? 1 : 0; 
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"); 

,請注意彎彎曲曲的紅線,在Visual Studio團隊投入了大量的精力投入到他們爲你。