写了一个小例子,找来找去都找不到错误
htlm:
<%@ Page language= "c# " Codebehind= "test.aspx.cs " AutoEventWireup= "false " Inherits= "test.WebForm1 " %>
.CS
protected System.Web.UI.WebControls.DataGrid dg;
private readonly string dsn = ConfigurationSettings.AppSettings[ "dsn "].ToString();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
SqlConnection conn = new SqlConnection(dsn);
SqlDataAdapter da = new SqlDataAdapter( "select * from zhuce ",conn);
DataSet ds = new DataSet();
da.Fill(ds);
dg.DataSource = ds;
dg.DataBind();
}
web.config:
<appSettings>
<add key= "dsn " value= "data source=xp\abc;database=abc;uid=sa;pwd=sa "> </add>
</appSettings>
运行后提示错误:(但我实在看不出哪里有错误,我的代码应该没有问题啊!!!!!)
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 30: SqlDataAdapter da = new SqlDataAdapter( "select * from zhuce ",conn);
行 31: DataSet ds = new DataSet();
行 32: da.Fill(ds);
行 33:
行 34: dg.DataSource = ds;
------解决方案--------------------htlm:
<%@ Page language= "c# " Codebehind= "test.aspx.cs " AutoEventWireup= "false " Inherits= "test.WebForm1 " %>
<form id=form1 method=post runat=server>
<datagrid runat=server id=dg>
</form>