我需要將我的xaml代碼的文本框中的文本轉換爲C#中的整數值。我正在使用.NET 4.0和Visual Studio 2010.有沒有辦法在xaml標籤中實現它,或者我需要在C sharp中編寫一個轉換器。我嘗試了以下,但不工作:將文本框文本轉換爲整數
Convert.ToInt32(this.txtboxname.Text)
任何幫助,非常感謝。謝謝。
我需要將我的xaml代碼的文本框中的文本轉換爲C#中的整數值。我正在使用.NET 4.0和Visual Studio 2010.有沒有辦法在xaml標籤中實現它,或者我需要在C sharp中編寫一個轉換器。我嘗試了以下,但不工作:將文本框文本轉換爲整數
Convert.ToInt32(this.txtboxname.Text)
任何幫助,非常感謝。謝謝。
建議在發送到SQL Server之前在您的代碼隱藏中執行此操作。
int userVal = int.Parse(txtboxname.Text);
也許嘗試分析和可選地讓用戶知道。
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal)
{
DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here."); }
你注意到的例外意味着你沒有在調用存儲過程中包含值。在調用構建對SQL Server的調用的代碼時,嘗試在代碼中設置調試器斷點。
確保您實際將參數附加到SqlCommand。
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@ParamName", SqlDbType.Int);
cmd.Parameters["@ParamName"].Value = newName;
conn.Open();
string someReturn = (string)cmd.ExecuteScalar();
}
也許啓動數據庫上的SQL事件探查器來檢查正在發送/執行的SQL語句。
我做了同樣的事情。我仍然收到同樣的錯誤。我相信它不是一個整數問題。它正在被轉換得很好,並被傳遞給方法(DoSomething(),就像你在這裏提到的那樣),它調用存儲過程。我在這個方法中設置了一個斷點,參數似乎保存了一個整數值。但是,對存儲過程的調用仍會失敗,並出現與上面相同的錯誤。 – zack 2010-08-23 16:03:57
如果我從sql server 2008環境運行存儲過程,它運行良好。 exec stored_procedure_name 7654 或任何其他整數值,而不是7654. – zack 2010-08-23 16:05:40
@VP:可能是你的參數連接到調用時出錯了嗎? – 2010-08-23 16:40:49
你並不需要寫一個轉換器,只是這樣做在你的處理器/隱藏代碼:
int i = Convert.ToInt32(txtMyTextBox.Text);
OR
int i = int.Parse(txtMyTextBox.Text);
您的文本框的Text
屬性是String
類型,所以你必須在代碼中執行轉換。
我認爲你提供的第一個解決方案('int i = Convert ........')與OP說他嘗試過的是一樣的。 – 2010-08-23 16:00:29
@亞歷克斯:是的。 OP有正確的方法,但想知道是否可以在XAML中完成同樣的事情。它不能。 – 2010-08-23 16:07:49
如果你的SQL數據庫允許該字段爲空值嘗試使用int? value
這樣的:
if (this.txtboxname.Text == "" || this.txtboxname.text == null)
value = null;
else
value = Convert.ToInt32(this.txtboxname.Text);
照顧一個空值的返回值爲0 Convert.ToInt32!
Convert.ToInt32(null) returns 0
不,它不允許null。我在轉換它之前在我的C#代碼中進行驗證。 – zack 2010-08-23 16:20:17
例子:
int x = Convert.ToInt32(this.txtboxname.Text) + 1 //You dont need the "this"
txtboxname.Text = x.ToString();
的 「x.ToString」 是讓整成字符串顯示在文本框中。
結果:
:)
我忘了提,我使用SQL Server 2008在後端。我需要爲我的sql服務器字段使用這種類型爲「int」的轉換。我希望我很清楚。再次感謝。 – zack 2010-08-23 15:10:45
你是什麼意思,它不工作?誰在使用這些數據?你是在調用一個存儲過程,還是需要用int調用一個回購方法? – 2010-08-23 15:10:52
我的意思是我將這個int作爲參數傳遞給sql server 2008中的存儲過程。但是我收到此錯誤 「過程或函數'name_of_SP'需要參數'@par_name',它沒有提供。 – zack 2010-08-23 15:13:18