[英]How to display alert message when SQL COMMAND return null? ASP.NET C#
I want that when SqlCommand
returns zero result or null
, then show alert message. 我希望当SqlCommand
返回零结果或null
,然后显示警报消息。 I try but it always giving me 我尝试,但它总是给我
Object reference not set to an instance of an object. 你调用的对象是空的。
Here is my code 这是我的代码
ASPX.CS 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;
}
also replace your code as 也将您的代码替换为
string tbl_name = Convert.ToString(cmd4.ExecuteScalar());
ExecuteScalar
only returns one value. ExecuteScalar
仅返回一个值。 You have to make sure your query only returns that value. 您必须确保查询仅返回该值。
use ExecuteReader 使用ExecuteReader
gives you a data reader back which will allow you to read all of the columns of the results a row at a time. 给您一个数据读取器,使您一次可以读取结果的所有列。
An example would be pulling profile information for one or more users. 一个示例是为一个或多个用户提取配置文件信息。
SELECT * FROM pro WHERE id = '123456' 选择*从专业人士ID ='123456'
Here is my suggestions: 这是我的建议:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.