Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL命令返回null时如何显示警报消息?ASP.NETC_C#_Asp.net - Fatal编程技术网

C# SQL命令返回null时如何显示警报消息?ASP.NETC

C# SQL命令返回null时如何显示警报消息?ASP.NETC,c#,asp.net,C#,Asp.net,我希望当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

我希望当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;
}
试试这个

if (dt == null || dt.Rows.Count <= 0)
{
 Response.Write("<Script>alert('No Tables Found')</Script>");
 return;
}
ExecuteScalar只返回一个值。您必须确保查询只返回该值

使用ExecuteReader

为您提供一个数据读取器,它允许您一次读取一行结果的所有列

例如,为一个或多个用户提取配置文件信息

选择*FROM pro,其中id='123456'

ExecuteScalar只返回一个值。您必须确保查询只返回该值

使用ExecuteReader

为您提供一个数据读取器,它允许您一次读取一行结果的所有列

例如,为一个或多个用户提取配置文件信息

选择*FROM pro,其中id='123456'


以下是我的建议:

数据绑定是一回事,显示消息是另一回事。您应该首先进行数据绑定,然后向用户显示任何消息。 请记住关闭数据库连接,否则将是一场灾难。 我认为您不必在循环中绑定数据,只需执行一次即可。 您可以在MSDN中引用registerstartupscript。
以下是我的建议:

数据绑定是一回事,显示消息是另一回事。您应该首先进行数据绑定,然后向用户显示任何消息。 请记住关闭数据库连接,否则将是一场灾难。 我认为您不必在循环中绑定数据,只需执行一次即可。 您可以在MSDN中引用registerstartupscript。
为什么会有回报;这是必要的吗?这段代码仍然会引发相同的异常,如果dt为Null,则某个时间客户端警报未显示,因为控件正在运行,这就是为什么使用它来返回它,我尝试了这一点,但它也会给我对象引用未设置为对象的实例。在输出行34的红线处显示错误:字符串tbl_name=cmd4.ExecuteScalar.ToString;尝试使用此字符串tbl_name=Convert.ToStringcmd4.ExecuteScalar;为什么会有回报;这是必要的吗?这段代码仍然会引发相同的异常,如果dt为Null,则某个时间客户端警报未显示,因为控件正在运行,这就是为什么使用它来返回它,我尝试了这一点,但它也会给我对象引用未设置为对象的实例。在输出行34的红线处显示错误:字符串tbl_name=cmd4.ExecuteScalar.ToString;尝试使用此字符串tbl_name=Convert.ToStringcmd4.ExecuteScalar;哪一行给出了这样的错误?输出行34中显示红线错误:字符串tbl_name=cmd4.ExecuteScalar.ToString;这意味着查询从tbl_字段中选择不同的表_名称,其中数据库_id=+dbid+为null。请检查dbid的值,是否有任何具有该id的数据库?是的,dbid有id,我确定,但表查询返回null尝试以下操作:在该查询中,数据库_id='+dbid+',哪一行给出了这样的错误?红线错误显示在输出行34中:字符串tbl_name=cmd4.ExecuteScalar.ToString;这意味着查询从tbl_字段中选择不同的表名称,其中Database_id=+dbid+为null。请检查dbid的值,是否有具有该id的数据库?是的,dbid有id,我确定,但表查询返回null尝试以下操作:在该查询中,WHERE Database_id='+dbid+'