100分在这边http://community.csdn.net/Expert/topic/5525/5525152.xml?temp=.2870294using System.Data.SqlClient;
using System.Configuration;namespace skyask.SQLServerTask
{
/// <summary>
/// DBConnection 数据库联接
/// </summary>
public sealed class DBConnection
{
#region 类 DBConnection 构造器
/// <summary>
/// 类 DBConnection 默认构造器
/// </summary>
private DBConnection()
{
}
#endregion /// <summary>
/// 获取数据库连接
/// </summary>
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString);
}
}
}------------------------------------------------------------------
public static int ExecuteNoneQuery(string cmdText, CommandType cmdType, SqlParameter[] sqlParams)
{
int val=0; SqlConnection dbConn=DBConnection.CreateInstance();///到这位置出错配置文件
----------------------------------------
<configuration>
<appSettings/>
<connectionStrings>
<add name="sqlConnectionString" connectionString="Data Source=320-6FCD89B076F;Initial Catalog=SkyAsk;User ID=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
-----------------------------------------
上面那些代码在SQLServerTask项目下
---------------------------
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 11: #region 类 DBConnection 构造器
行 12: /// <summary>
行 13: /// 类 DBConnection 默认构造器
行 14: /// </summary>
行 15: private DBConnection()
源文件: F:\Ask\SqlServerTask\DBConnection.cs 行: 13
using System.Configuration;namespace skyask.SQLServerTask
{
/// <summary>
/// DBConnection 数据库联接
/// </summary>
public sealed class DBConnection
{
#region 类 DBConnection 构造器
/// <summary>
/// 类 DBConnection 默认构造器
/// </summary>
private DBConnection()
{
}
#endregion /// <summary>
/// 获取数据库连接
/// </summary>
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString);
}
}
}------------------------------------------------------------------
public static int ExecuteNoneQuery(string cmdText, CommandType cmdType, SqlParameter[] sqlParams)
{
int val=0; SqlConnection dbConn=DBConnection.CreateInstance();///到这位置出错配置文件
----------------------------------------
<configuration>
<appSettings/>
<connectionStrings>
<add name="sqlConnectionString" connectionString="Data Source=320-6FCD89B076F;Initial Catalog=SkyAsk;User ID=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
-----------------------------------------
上面那些代码在SQLServerTask项目下
---------------------------
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 11: #region 类 DBConnection 构造器
行 12: /// <summary>
行 13: /// 类 DBConnection 默认构造器
行 14: /// </summary>
行 15: private DBConnection()
源文件: F:\Ask\SqlServerTask\DBConnection.cs 行: 13
DBConnection.CreateInstance();就发生错误
还需要什么代码?
------------------------------------------------------------------------------------这个我在页面上Response.write(ConfigurationManager.ConnectionStrings["sqlConnectionString“])
输出来的就是配置文件的内容
未将对象引用设置到对象的实例
这样的错误是最容易找的,F10一步一步跟踪,看值的变化情况
到web.config看sqlConnectionString是否一致,位置放的对不对
/// <summary>
/// 类 DBConnection 默认构造器 *********单步调试竟然到这里出现错误
/// </summary>
using System.Configuration;namespace skyask.SQLServerTask
{
/// <summary>
/// DBConnection 数据库联接
/// </summary>
public sealed class DBConnection
{
#region 类 DBConnection 构造器
/// <summary>
/// 类 DBConnection 默认构造器
/// </summary>
private DBConnection()
{
}
#endregion /// <summary>
/// 获取数据库连接
/// </summary>
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString);
}
}
}
{
}
你把这个方法去掉还有问题么?
应该是这里读出来的是null
或者你先在这里直接用连接字符串看看有没有问题。
{
}
你把这个方法去掉还有问题么?
把这方法去掉错误一样在13行ConfigurationManager.ConnectionStrings["sqlConnectionString"]
读出来是正确的
===>SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ToString();吧。。
==============
如果不是static 编译都过不了
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString);
}
改成﹕
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationSettings.AppSettings["Connection"]);
}
ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString
的值也是正确的
晕S了
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString);
}
改成﹕
public static SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationSettings.AppSettings["sqlConnectionString"]);
}
按照你的代码试了一下,没什么错误,你是不是故意炒做呀???
-------------------------------------------------------------
我吃饱了撑着啊
源文件: F:\Ask\SqlServerTask\DBConnection.cs 行: 13 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
skyask.SQLServerTask.DBConnection.CreateInstance() in F:\Ask\SqlServerTask\DBConnection.cs:13
skyask.SQLServerTask.SQLHelper.ExecuteReader(String cmdText, CommandType cmdType, SqlParameter[] sqlParams) in F:\Ask\SqlServerTask\SQLHelper.cs:74
skyask.SQLServerTask.AskCategoryTask.GetAllAskCategory() in F:\Ask\SqlServerTask\AskCategoryTask.cs:17[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +296
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +17
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +676
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2663
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +84
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +154
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +99
System.Web.UI.WebControls.GridView.DataBind() +23
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +92
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +100
System.Web.UI.Control.EnsureChildControls() +134
System.Web.UI.Control.PreRenderRecursiveInternal() +109
System.Web.UI.Control.PreRenderRecursiveInternal() +233
System.Web.UI.Control.PreRenderRecursiveInternal() +233
System.Web.UI.Control.PreRenderRecursiveInternal() +233
System.Web.UI.Control.PreRenderRecursiveInternal() +233
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint
是不是 static 的问题
==============
如果不是static 编译都过不了---------------------------------------------------------------------
可以成功编译.就在运行的时候出现错误
你先把bin目录下的引用这个工程的dll删掉,然后把solution重新build一遍
再运行试试看
是不是 static 的问题
==============
如果不是static 编译都过不了---------------------------------------------------------------------
可以成功编译.就在运行的时候出现错误
======================
public sealed class DBConnection
{
public SqlConnection CreateInstance()
{
// 从配置文件中获取连接字符串并返回连接对象
return new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString);
}
}
SqlConnection dbConn=DBConnection.CreateInstance();
这样能编译通过?只能说明你的dll是过期的
删掉重新build一遍再说
受不了了
你先把bin目录下的引用这个工程的dll删掉,然后把solution重新build一遍
再运行试试看---------------------------------------------------------
解决了
谢谢
可能是刚才引用后还没保存电脑死机了.
里面的动态链接库还在bin目录下
删除后重新生成解决方案才发现没有SQLServerTask项目的动态链接库
重新引用就可以了
差点疯了
http://community.csdn.net/Expert/topic/5525/5525152.xml?temp=.7154047
到这边拿分.结贴