int ArticleID = Convert.ToInt32(Request.QueryString["ArticleID"]);
string sqlArticle = "select Article.ClassID,Article.Title,ArticleClass.ClassName,ArticleClass.ParentPath,ArticleClass.Depth,Article.SpecialID from Article inner join ArticleClass on Article.ClassID=ArticleClass.ClassID where Article.ArticleID=" + ArticleID;
DataRow dr_Article = db.GetDataRow(sqlArticle);
if (dr_Article != null)
{
ClassName.Text = dr_Article[2].ToString();
}
Session["mydr"] = dr_Article; //写入Session//---------------------------------------------------------------------------------------DataRow my_dr = (DataRow)Session["mydr"]; //读取Session Response.Write(my_dr[2].ToString()); //错误提示:未将对象引用设置到对象的实例。哪里出错?
string sqlArticle = "select Article.ClassID,Article.Title,ArticleClass.ClassName,ArticleClass.ParentPath,ArticleClass.Depth,Article.SpecialID from Article inner join ArticleClass on Article.ClassID=ArticleClass.ClassID where Article.ArticleID=" + ArticleID;
DataRow dr_Article = db.GetDataRow(sqlArticle);
if (dr_Article != null)
{
ClassName.Text = dr_Article[2].ToString();
}
Session["mydr"] = dr_Article; //写入Session//---------------------------------------------------------------------------------------DataRow my_dr = (DataRow)Session["mydr"]; //读取Session Response.Write(my_dr[2].ToString()); //错误提示:未将对象引用设置到对象的实例。哪里出错?
解决方案 »
- 高分求教:GRIDVIEW 录入数据是判断是否存在数据库中
- 文件上传问题,急求解决·
- 求ObjectDataSource教程
- BS架构下播放rmvb出错,请高手指教
- 在制作Web安装程序时,如何恢复备份的数据库文件(MSSQL)?
- 用SqlDataAdapter.Fill(DataSet,tableName),怎样将表的主键等信息加入dataSet的Table中
- 为使不能多次将文件写入数据库,第一次写入正常,以后就总是说找不到当前页
- .Net安全问题: 任何一个textbox中输入字符串 <BR> 提交都会出现错误.怎么办?
- 200分求解:WebBrwoser相关问题(挺难的,UP有分)
- 如何在单击按钮时打开另一个web页面
- 现在项目 为二次开发做接口
- 动态生成table,两列N行,在线等,谢谢!
这个没题
这个没问题
==
if(my_dr[2] != null && my_dr[2] != System.DBNull.Value)
{
Response.Write(my_dr[2].ToString());
}
string sqlArticle = "select Article.ClassID,Article.Title,ArticleClass.ClassName,ArticleClass.ParentPath,ArticleClass.Depth,Article.SpecialID from Article inner join ArticleClass on Article.ClassID=ArticleClass.ClassID where Article.ArticleID=" + ArticleID;
DataRow dr_Article = db.GetDataRow(sqlArticle);
if (dr_Article != null)
{
ClassName.Text = dr_Article[2].ToString();
Session["mydr"] = dr_Article; //写入Session
}
//---------------------------------------------------------------------------------------if(Session["mydr"]!=null)
{
DataRow my_dr = (DataRow)Session["mydr"]; //读取Session Response.Write(my_dr[2].ToString()); //错误提示:未将对象引用设置到对象的实例。
}
string sqlArticle = "select Article.ClassID,Article.Title,ArticleClass.ClassName,ArticleClass.ParentPath,ArticleClass.Depth,Article.SpecialID from Article inner join ArticleClass on Article.ClassID=ArticleClass.ClassID where Article.ArticleID=" + ArticleID;
DataRow dr_Article = db.GetDataRow(sqlArticle);
if (dr_Article != null)
{
ClassName.Text = dr_Article[2].ToString();
//把写入session 放在dr_Article != null 里面
如果放在外面 如果dr_Article 为空了!当然会报 未将对象引用设置到对象的实例。 Session["mydr"] = dr_Article; //写入Session
}
//---------------------------------------------------------------------------------------DataRow my_dr = (DataRow)Session["mydr"]; //读取Session Response.Write(my_dr[2].ToString()); //错误提示:未将对象引用设置到对象的实例。
string sqlArticle = "select Article.ClassID,Article.Title,ArticleClass.ClassName,ArticleClass.ParentPath,ArticleClass.Depth,Article.SpecialID from Article inner join ArticleClass on Article.ClassID=ArticleClass.ClassID where Article.ArticleID=" + ArticleID;
DataRow dr_Article = db.GetDataRow(sqlArticle);
if (dr_Article != null)
{
ClassName.Text = dr_Article[2].ToString();
}
//这一部份绝对没问题哦
难道真的不可以吗
{
ClassName.Text = dr_Article[2].ToString();
}
Session["mydr"] = dr_Article; //写入Session
你这里写的有问题啊...... 在这里你做判断 如果dr_Article 不等于空的话 ClassName.Text = dr_Article[2].ToString();
但是你写入session里的时候没有做判断啊... 如果 为空了照样他会写入session
下面你在调用的时候当然回提示 未将对象引用设置到对象的实例。
if (my_dr[2] != null) Response.Write(my_dr[2].ToString());
public class Database : IDisposable
{
/// <summary>
/// 保护变量,数据库连接。
/// </summary>
protected SqlConnection Connection; /// <summary>
/// 保护变量,数据库连接串。
/// </summary>
protected String ConnectionString; /// <summary>
/// 构造函数。
/// </summary>
/// <param name="DatabaseConnectionString">数据库连接串</param>
public Database()
{
ConnectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString();
} /// <summary>
/// 析构函数,释放非托管资源
/// </summary>
~Database()
{
try
{
if (Connection != null)
Connection.Close();
}
catch (Exception ex)
{
Logger.Log.Error("数据库链接错误:", ex);
}
try
{
Dispose();
}
catch { }
} /// <summary>
/// 保护方法,打开数据库连接。
/// </summary>
protected void Open()
{
if (Connection == null)
{
Connection = new SqlConnection(ConnectionString);
}
if (Connection.State.Equals(ConnectionState.Closed))
{
Connection.Open();
}
} /// <summary>
/// 公有方法,关闭数据库连接。
/// </summary>
public void Close()
{
if (Connection != null)
Connection.Close();
} /// <summary>
/// 公有方法,释放资源。
/// </summary>
public void Dispose()
{
// 确保连接被关闭
if (Connection != null)
{
Connection.Dispose();
Connection = null;
}
} /// <summary>
/// 公有方法,获取数据,返回一个SqlDataReader (调用后主意调用SqlDataReader.Close())。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>SqlDataReader</returns>
public SqlDataReader GetDataReader(String SqlString)
{
Open();
SqlCommand cmd = new SqlCommand(SqlString, Connection);
SqlDataReader dataReader = null;
try
{
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
Logger.Log.Error("GetDataReader错误:", ex);
}
return dataReader;
} /// <summary>
/// 公有方法,获取数据,返回一个DataSet。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataSet</returns>
public DataSet GetDataSet(String SqlString)
{
Open();
DataSet dataset = new DataSet();
try
{
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
adapter.Fill(dataset);
Close();
}
catch (Exception ex)
{
Logger.Log.Error("GetDataSet错误:", ex);
}
return dataset;
} /// <summary>
/// 公有方法,获取数据,返回一个DataTable。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataTable</returns>
public DataTable GetDataTable(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
DataTable datatable = new DataTable();
if (dataset.Tables.Count > 0)
datatable = dataset.Tables[0];
return datatable;
} /// <summary>
/// 公有方法,获取数据,返回一个DataRow。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataRow</returns>
public DataRow GetDataRow(String SqlString)
{
DataTable dt = GetDataTable(SqlString);
if (dt.Rows.Count > 0)
return dt.Rows[0];
return null;
} /// <summary>
/// 公有方法,执行Sql语句。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>对Update、Insert、Delete为影响到的行数,其他情况为-1</returns>
public int ExecuteSQL(String SqlString)
{
int count = -1;
Open();
try
{
SqlCommand cmd = new SqlCommand(SqlString, Connection);
count = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Logger.Log.Error("ExecuteSQL错误:", ex);
count = -1;
}
finally
{
Close();
}
return count;
}