已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
SqlConnectioncn=newSqlConnection();cn.ConnectionString="datasource=.;initialcatalog=o...
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "data source=.;initial catalog=oa;integrated security=sspi";
cn.Open();
SqlCommand cmd = new SqlCommand("select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'",cn );
if (cmd .ExecuteReader() !=null )
{
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
Label1.Text = dr.GetString(0).ToString();
dr.Close();
Label6.Text = "您有新短信,请注意查收!";
} 展开
cn.ConnectionString = "data source=.;initial catalog=oa;integrated security=sspi";
cn.Open();
SqlCommand cmd = new SqlCommand("select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'",cn );
if (cmd .ExecuteReader() !=null )
{
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
Label1.Text = dr.GetString(0).ToString();
dr.Close();
Label6.Text = "您有新短信,请注意查收!";
} 展开
展开全部
稍微标准点的写法
SqlConnection cn = null;
SqlCommand cmd = null;
SqlDataReader dr = null;
cn = new SqlConnection();
cn.ConnectionString = "data source=.;initial catalog=oa;integrated security=sspi";
cmd = new SqlCommand("select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'"汪激, cn);
try
{
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr != null)
{
if (dr.Read())
{
Label1.Text = dr.GetString(0).ToString();
Label6.Text = "您有新短信,请注意查收!";
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
if (dr != null) dr.Close();
if (cmd != null) cmd.Dispose();
if (cn != null) cn.Dispose();
}
程序还有很多问题不规范
比如
select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'"
==
既然知道条件是 是否已阅 ='否',那就根本没必要 select 是否已阅...
改成
select 1 from Msg where 收信人='" + b + "' and 是否已阅 ='否'"即困告袜可
再比如
刚才使用的是拼接sql语句友轮,已经基本被摒弃了,网上搜搜"参数化语句"和"sql注入"就知道了
SqlConnection cn = null;
SqlCommand cmd = null;
SqlDataReader dr = null;
cn = new SqlConnection();
cn.ConnectionString = "data source=.;initial catalog=oa;integrated security=sspi";
cmd = new SqlCommand("select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'"汪激, cn);
try
{
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr != null)
{
if (dr.Read())
{
Label1.Text = dr.GetString(0).ToString();
Label6.Text = "您有新短信,请注意查收!";
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
if (dr != null) dr.Close();
if (cmd != null) cmd.Dispose();
if (cn != null) cn.Dispose();
}
程序还有很多问题不规范
比如
select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'"
==
既然知道条件是 是否已阅 ='否',那就根本没必要 select 是否已阅...
改成
select 1 from Msg where 收信人='" + b + "' and 是否已阅 ='否'"即困告袜可
再比如
刚才使用的是拼接sql语句友轮,已经基本被摒弃了,网上搜搜"参数化语句"和"sql注入"就知道了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "data source=.;initial catalog=oa;integrated security=sspi";
cn.Open();
SqlCommand cmd = new SqlCommand("select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'则迅禅",cn );
using(SqlDataReader dr = cmd.ExecuteReader())
{
try{
dr.Read();
Label1.Text = dr.GetString(0).ToString();
dr.Close();
Label6.Text = "您有新短信昌胡,请注意查收!";
}catch{}
}
con.Close();
//光给代码不知道你看得懂不....也没什么好说的,楼上几位把该说的都说完了孙尘....
cn.ConnectionString = "data source=.;initial catalog=oa;integrated security=sspi";
cn.Open();
SqlCommand cmd = new SqlCommand("select 是否已阅 from Msg where 收信人='" + b + "' and 是否已阅 ='否'则迅禅",cn );
using(SqlDataReader dr = cmd.ExecuteReader())
{
try{
dr.Read();
Label1.Text = dr.GetString(0).ToString();
dr.Close();
Label6.Text = "您有新短信昌胡,请注意查收!";
}catch{}
}
con.Close();
//光给代码不知道你看得懂不....也没什么好说的,楼上几位把该说的都说完了孙尘....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改衫世族为:SqlDataReader dr=cmd.ExecuteReader(); if(){}将两次执行改返带为一次,因为两次的执行冲突,if()括号里的执行语或弊句还未关闭.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询