簡體   English   中英

SQL COMMAND返回null時如何顯示警報消息? ASP.NET C#

[英]How to display alert message when SQL COMMAND return null? ASP.NET C#

我希望當SqlCommand返回零結果或null ,然后顯示警報消息。 我嘗試,但它總是給我

你調用的對象是空的。

這是我的代碼

ASPX.CS

public void gettable()
{
    string user = Session["name"].ToString();

    SqlConnection cnn = new SqlConnection("Data Source=LIFE_WELL;Initial Catalog=db_compiler;Integrated Security=True");
    //string db = Session["value"].ToString();

    string db = Session["value"].ToString();

    SqlCommand cmd3 = new SqlCommand("SELECT Database_id from Create_db WHERE Database_Name='" + db + "'", cnn);

    cnn.Open();

    string dbid = cmd3.ExecuteScalar().ToString();

    SqlCommand cmd4 = new SqlCommand("SELECT DISTINCT (Table_Name) from tbl_field WHERE Database_id=" + dbid + "", cnn);
    string tbl_name = cmd4.ExecuteScalar().ToString();

    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd4);
    da.Fill(dt);

    if (dt.Rows.Count == 0)
    {
        Response.Write("<Script>alert('" + Server.HtmlEncode("No Tables Found") + "')</Script>");
    }
    else
    {
        foreach (DataRow dr in dt.Rows)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
            cnn.Close();
        }
    }
}

嘗試這個

if (dt == null || dt.Rows.Count <= 0)
{
 Response.Write("<Script>alert('No Tables Found')</Script>");
 return;
}

也將您的代碼替換為

string tbl_name = Convert.ToString(cmd4.ExecuteScalar());

ExecuteScalar僅返回一個值。 您必須確保查詢僅返回該值。

使用ExecuteReader

給您一個數據讀取器,使您一次可以讀取結果的所有列。

一個示例是為一個或多個用戶提取配置文件信息。

選擇*從專業人士ID ='123456'

這是我的建議:

  1. 數據綁定是一回事,顯示消息是另一回事。 您應該先進行數據綁定,然后再向用戶顯示任何消息。
  2. 請記住關閉數據庫連接,否則將是一場災難。
  3. 我認為您不必循環進行數據綁定,只需執行一次即可。
  4. 您可以在MSDN中引用“ registerstartupscript”。

暫無
暫無

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

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