[英]converting object to string has error
我的代碼是這樣的:
SqlConnection scn = new SqlConnection(ClsPublic.GetConnectionString());
SqlCommand scm = new SqlCommand("SELECT Name FROM Table WHERE (Blogger = @Blogger)", scn);
scm.Parameters.AddWithValue("@Blogger", lblBloger.Text);
scn.Open();
MyLabel.Text = scm.ExecuteScalar().ToString();
scn.Close();
在這一行:
lblLastNo.Text = scm.ExecuteScalar().ToString();
有這個錯誤:
你調用的對象是空的。
或者當我使用if語句時,顯示相同的錯誤
object Blogger= "";
if (Blogger.ToString() != string.Empty)
{
....
}
在下面的代碼再次顯示相同的錯誤。
最有可能scm.ExecuteScalar()
為您帶來一個空值。 您需要在使用之前測試返回的值:
var result = scm.ExecuteScalar();
MyLabel.Text = result == null ? '' : result.ToString();
scm.ExecuteScalar()
返回null,或者scm
為null,或者lblLastNo
為null。 這是你得到錯誤'Object reference not set ..'的唯一原因。
ExecuteScalar返回Object類型。 這就是你在scm.ExecuteScalar().ToString();
上有相同行為的scm.ExecuteScalar().ToString();
或Blogger.ToString()
。
ToString方法的對象類型默認實現返回Object類型的完全限定名稱,如以下示例所示。
如果此對象為NULL,您將收到錯誤Object reference not set to an instance of an object.
你的第二個案例:
object blogger= "";
if (blogger.ToString() != string.Empty)
{
....
}
不應拋出異常但返回表示對象實例的字符串。 例如: "YourNameSpace.Blogger"
請附上try catch塊,以便您可以處理運行時異常,並使生活更容易理解問題。 對於if (Blogger.ToString() != string.Empty)
你可以檢查Null條件或其字符串。 然后你可以檢查String.IsNullorEmpty
string str=blogger.toString();
if (String.IsNullOrEmpty(str))
//do something
else
//do other part
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.