簡體   English   中英

將對象轉換為字符串有錯誤

[英]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

字符串為空或EMpty

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM