2013-08-02 252 views
0

我想调试上述错误。以下是我的代码。错误:System.NullReferenceException:对象引用未设置为对象的实例

private SqlConnection SQLConn(string name) 
{ 
    SqlConnection conn = new SqlConnection(); 
    conn.ConnectionString = ConfigurationManager.ConnectionStrings[name].ConnectionString; 
    return conn; 
} 

protected void rb2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    SqlConnection conn = new SqlConnection(); 

    conn = SQLConn("Plastics"); 
    try 
    { 
     string selectSQL = "SELECT [Description], [Code], [Change] FROM [plastics]"; 

     SqlCommand cmd = new SqlCommand(selectSQL, conn); 

     conn.Open(); 

     GridView1.DataSource = cmd.ExecuteReader(); 
     GridView1.DataBind(); 

    } 
    catch (SqlException Exception) 
    { 
     // catch exception 
     Response.Write("An error occured"); 
    } 
    finally 
    { 
     conn.Close(); 
    } 

} 

我在GridView1.DataSource = cmd.ExecuteReader();上得到一个错误。

我必须实例化什么?

+3

检查'如果(GridView1!= NULL)' – Bolu

+0

非常感谢我把后之后出现快速response.No错误的if语句,但GridView的不显示。 –

+0

您的.aspx文件中是否有名为GridView1的GridView? – sisve

回答

0
using (DataSet ds = new DataSet()) 
{ 
    DataTable dt = new DataTable(); 
    ds.Tables.Add(dt); 
    string str = "User ID=username;Password=password;Data Source=Test"; 
    SqlConnection conn = new SqlConnection(str); 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = conn; 
    cmd.CommandText = "select * from table_name"; 
    cmd.CommandType = CommandType.Text; 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    da.Fill(dt); 
    if(dt!=null) 
    { 
     GridView2.DataSource = dt; 
     GridView2.DataBind(); 
    } 
} 
+5

在'DataSet'上使用''而不是像'SqlConnection'和'SqlCommand'和'SqlDataAdapter'这样重要的东西。 –

+0

由于这是一个不连贯的体系结构,因此不会有资源被阻挡。我们可能只想考虑释放DataSet ... – adityaswami89

+0

感谢您的代码。我仍然在GridView1.DataSource = dt上得到同样的错误; –

相关问题