◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
异常的消息:内部连接致命错误。
引发当前异常的方法:System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean)
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
异常的消息:未将对象引用设置到对象的实例。
引发当前异常的方法:Void InternalClose(Boolean)
baidu google csdn 相关文章一篇都没有.孟子都没有办法哦
==========================================
各位大仙啊?神啊救人拉
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
异常的消息:内部连接致命错误。
引发当前异常的方法:System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean)
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
异常的消息:未将对象引用设置到对象的实例。
引发当前异常的方法:Void InternalClose(Boolean)
baidu google csdn 相关文章一篇都没有.孟子都没有办法哦
==========================================
各位大仙啊?神啊救人拉
解决方案 »
- 前台的if 和else
- 求3-50个英文字母和数字、或2-25个中文字的正则表达式!
- gridview的更新问题!请大家帮忙,谢谢!
- 如何获取客户端设置的DropDownList值.
- 使用SQL语句和存储过程!
- 数据库服务器是sql server2000 sp3,我想在自己的机器的服务器资源管理器中看到数据库
- Stream到StreamReader怎样转变?急盼
- 安装好petshop后,http://localhost/MSPetShop可以访问,但是vsnet2003 打开web项目出错: 不能从服务器得到工程!!!
- <%= %>怎么使用
- object sender, System.EventArgs e参数如何理解(就这么多了~~)
- 出现了一个小问题,大家帮忙看看
- 新人提问,有两个页面,如何让后一个页面必须通过前一个页面的验证才能看到呢?
跟数据库有关系的,检查数据库设置,连接未将对象引用设置到对象的实例:
你使用对象时对象为null,
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb ;
using System.Configuration;
using NUnit.Framework;
using log4net.Repository.Hierarchy;
using log4net;
using log4net.Config;namespace LinkThink.Data
{
[TestFixture]
public sealed class DbObject : System.IDisposable
{
private string StrTableName;
private SqlConnection conn;
private string errMsg;
private string StrSql;
private DataSet ds;
private SqlCommand MyCommand;
private SqlTransaction myTrans;
private static string strDSN=ConfigurationSettings.AppSettings.Get("strConnection");
private static readonly ILog log = LogManager.GetLogger(typeof(DbObject));
//private static string strDSN="server=127.0.0.1,uid=sa,pwd=s,DataBase=linkThinkGR";
public void Dispose()
{
//GC.SuppressFinalize(this);
} [SetUp]
private void TestSetUp()
{
conn = new SqlConnection() ;
conn.ConnectionString = "server=127.0.0.1,uid=sa,pwd=s,DataBase=linkThinkGR";
}
[TearDown]
private void TestDown()
{
conn.Dispose() ;
} //数据库连接
public DbObject()
{
ConnectDB();
}
//关闭数据库
public void Close()
{
if(MyCommand!=null)
{
MyCommand.Dispose();
}
if(conn!=null)
{
conn.Close();
conn.Dispose();
conn=null;
}
}
//无返回数据执行方法
public bool ExecuteSql(String StrSql)
{
this.StrSql=StrSql;
try
{
if(conn.State.ToString().ToUpper() != "Open".ToUpper())conn.Open() ;
MyCommand=new SqlCommand(StrSql,conn);
if(myTrans!=null)
{
MyCommand.Transaction=myTrans;
}
MyCommand.ExecuteNonQuery();
MyCommand.Dispose();
log.Info(MyCommand.CommandText);
return true; }
catch(SqlException eErr)
{
conn.Close();
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
log.Info(MyCommand.CommandText);
log.Info(eErr.Message);
log.Info(eErr.StackTrace);
log.Info(eErr.TargetSite);
SqlErrorHandler(eErr);
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
return false;
}
}
//开始事务
public void BeginTrans()
{
if(myTrans==null)
{
myTrans=conn.BeginTransaction();
}
}
//回滚事务
public void RollbackTrans()
{
myTrans.Rollback();
}
//执行事务
public void CommitTrans()
{
myTrans.Commit();
myTrans.Dispose();
}
//返回第一行第一列;
public string GetData(string StrSql,int flag)
{
this.StrSql=StrSql;
string StrResult="";
try
{
if(conn.State.ToString().ToUpper() != "Open".ToUpper())conn.Open() ;
MyCommand=new SqlCommand(StrSql,conn);
if(myTrans!=null)
{
MyCommand.Transaction=myTrans;
}
object o=MyCommand.ExecuteScalar();
if(o==null)
{
StrResult="";
}
else
{
StrResult=o.ToString();
}
}
catch(SqlException eErr)
{
conn.Close();
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
log.Info(eErr.Message);
log.Info(eErr.StackTrace);
log.Info(eErr.TargetSite);
SqlErrorHandler(eErr);
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
}
return StrResult;
}
public DataSet GetData(String StrTableName,String StrSql)
{
this.StrTableName=StrTableName;
this.StrSql=StrSql;
try
{
if(conn.State.ToString().ToUpper() != "Open".ToUpper())conn.Open() ;
SqlDataAdapter cmd=new SqlDataAdapter(StrSql,conn);
ds=new DataSet();
if(myTrans!=null)
{
cmd.SelectCommand.Transaction=myTrans;
}
cmd.Fill(ds,StrTableName);
log.Info(StrSql);
}
catch(SqlException eErr)
{
conn.Close();
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
log.Info(eErr.Message);
log.Info(eErr.StackTrace);
log.Info(eErr.TargetSite);
SqlErrorHandler(eErr);
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
}
return ds;
}
public void ConnectDB()
{
try
{
if(conn!=null)
{
conn.Close();
}
conn =new SqlConnection(strDSN);
conn.Open();
}
catch(SqlException eErr)
{
conn.Close();
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
log.Info(eErr.Message);
log.Info(eErr.StackTrace);
log.Info(eErr.TargetSite);
errMsg="Connection Error"+eErr.Message.ToString();
log.Info("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆");
}
} private void SqlErrorHandler(SqlException E)
{
try
{
switch(E.Number)
{
case 170:
errMsg = "请您检查输入是否规范!"; //
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
case 128:
errMsg = "输入的数据格式有问题!"; //譬如整型被输入了字母
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
case 241:
errMsg = "日期输入格式有问题!正确格式举例:2002-03-09";
break;
case 2627:
errMsg = "输入的数据重复";
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
case 8152:
errMsg = "输入的数据太长,请你最好缩写所要填写的数据";
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
case 547:
errMsg = "您要操作的数据已经被其它数据使用!";
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
case 515:
errMsg = "请将重要信息填写完整";
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
default:
errMsg="意外错误,请与开发商联系";
errMsg = "[" +E.Number.ToString()+"]"+ E.ToString()+"---"+StrSql;
break;
}
}
catch (System.Exception e)
{
errMsg=e.ToString();
return ;
}
}
//向数据库中插入时候,需要调用此发放转化
public string ToHtml(string str)
{
str=str.Replace("'","''");
str=str.Replace("&", "&");
str=str.Replace("<", "<");
str=str.Replace(">", ">");
str=str.Replace("\r\n", "<br>");
str=str.Replace("\n", "<br>");
str=str.Replace("\t", " ");
str=str.Replace(" ", " ");
return(str);
}
//从数据库中读取数据到文本框进行编辑的时候调用此方法
public string ToTxt(string str)
{
str=str.Replace("''","'");
str=str.Replace( "&","&");
str=str.Replace("<","<");
str=str.Replace(">",">");
str=str.Replace("<br>","\r\n");
str=str.Replace("<br>","\n");
str=str.Replace(" ","\t");
str=str.Replace(" "," ");
return(str);
}
public int ExecuteProc(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
int result;
try
{
SqlCommand command = BuildIntCommand( storedProcName, parameters );
rowsAffected = command.ExecuteNonQuery();
result = (int)command.Parameters["ReturnValue"].Value;
return result;
}
catch(SqlException e)
{
this.SqlErrorHandler(e);
rowsAffected=0;
return 0;
}
}
//组装存储过程的参数
private SqlCommand BuildIntCommand(string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = BuildQueryCommand( storedProcName, parameters ); command.Parameters.Add( new SqlParameter ( "ReturnValue",
SqlDbType.Int,
4,
ParameterDirection.ReturnValue,
false,
0,
0,
string.Empty,
DataRowVersion.Default,
null )); return command;
}
private SqlCommand BuildQueryCommand(string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = new SqlCommand( storedProcName, conn );
command.CommandType = CommandType.StoredProcedure; foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
}
return command;
} public string ErrorMessage
{
get
{
return errMsg;
}
set
{
errMsg=value;
}
}
public static string StrDSN
{
get
{
return strDSN;
}
set
{
strDSN=value;
}
}
}
/// <summary>
/// 根据新闻ID得到新闻的详细信息
/// </summary>
/// <returns></returns>
public static DataSet GetNewsDetailsByNewsID(int n_ID)
{
try
{
StringBuilder stringBuilder = new StringBuilder() ;
stringBuilder.Append("SELECT " );
stringBuilder.Append("TOP 1 * " );
stringBuilder.Append("FROM " );
stringBuilder.Append(" LinkThinkGR001 " );
stringBuilder.Append("WHERE " );
stringBuilder.Append(" ID = "+n_ID );
//这里根据ID 查询就不需要AGenre="+LinkThink.Util.CNewsTableGenre.NEWS.ID了
dbObject.ConnectDB();
DataSet ds = dbObject.GetData("LinkThinkGR001",Util.ToSafeString(stringBuilder));
dbObject.Close();
return ds;
}
catch(Exception err)
{
dbObject.Close();
LinkThink.Util.ErrorMessageLog.SetErrorMessage(err) ;
throw err;
}
}
来打开数据库啊
来打开数据库啊这句话不对,应该是:
if(conn.State = ConnectionState.Closed )conn.Open() ;
下面finally中还要添加类似的检查
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
异常的消息:内部连接致命错误。
引发当前异常的方法:System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean)
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
异常的消息:未将对象引用设置到对象的实例。
引发当前异常的方法:Void InternalClose(Boolean)
SqlCommand.Cancel()方法