如何显示警报消息时,SQL命令返回null?ASP.净c#
本文关键字:返回 命令 SQL null ASP 何显示 显示 消息 | 更新日期: 2023-09-27 17:52:16
我想当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();
}
}
}
try this
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
为您提供了一个数据读取器,它允许您一次读取一行结果的所有列。
一个例子是为一个或多个用户提取概要信息。
SELECT * FROM pro WHERE id = '123456'
以下是我的建议:
- 数据绑定是一回事,显示消息是另一回事。你应该先做数据绑定,然后再显示任何消息给用户。 请记住关闭数据库连接,否则将是一场灾难。
- 我不认为你必须在循环中绑定数据,只做一次。
- 你可以在MSDN中引用"registerstartupscript"