編集:これは、問題が重複しているため、単純なNullReferenceExceptionより複雑です。 オブジェクトリファレンスがオブジェクトのインスタンスに設定されていません(グリッドビューを使用)
これ
は私に問題を与えているコードのビット:private void BindData()
{
SqlConnection con = new SqlConnection(Connection.constr);
con.Open();
string[] Querys = new string[4];
Querys[0] = "PopulateConstraintTable";
Querys[1] = "PopulateModuleTable";
Querys[2] = "PopulateFeatureTable";
Querys[3] = "PopulateInterfaceTable";
for (int n = 0; n < 4; n++)
{
SqlCommand cmd = new SqlCommand(Querys[n], con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@License", SqlDbType.Int).Value = 20000 + MyGlobals.CurrentOrgID;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable Table = new DataTable();
da.Fill(Table);
((GridView)Page.FindControl("GridView" + (n + 1))).DataSource = Table;
((GridView)Page.FindControl("GridView" + (n + 1))).DataBind();
cmd.ExecuteNonQuery();
}
con.Close();
}
このコードは、これらのストアドプロシージャ内の情報と4つの異なるGridviewsを移入する必要がありますが、私はラインでエラーが発生します
((GridView)Page.FindControl("GridView" + (n + 1))).DataSource = Table;
((GridView)Page.FindControl("GridView" + (n + 1))).DataBind();
言うこと:
An exception of type 'System.NullReferenceException' occurred in App_Web_30v1z0on.dll but was not handled in user code
Additional information: Object reference not set to an instance of an object.
誰かがwronているものを通して私を歩くことができますどう?ありがとうございました!
EDIT:マークアップ -
<asp:GridView
ID="GridView1"
runat="server"
CellPadding="6"
GridLines="Horizontal"
Font-Names="Verdana"
Font-Size="10pt"
DataKeyNames="ConstraintID"
AutoGenerateColumns="false"
allowpaging="false"
Width="730px">
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" ForeColor="White" HorizontalAlign="Left" Height="25" Font-Bold="True" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>...</Columns>
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="false" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<asp:GridView
ID="GridView2"
cellpadding="6"
runat="server"
GridLines="Horizontal"
Font-Names="Verdana"
Font-Size="10pt"
DataKeyNames="ModuleID"
AutoGenerateColumns="False"
onrowcancelingedit="GridView2_RowCancelingEdit"
onrowediting="GridView2_RowEditing"
onrowupdating="GridView2_RowUpdating"
Width="730px">
<HeaderStyle BackColor="#336699" ForeColor="White" HorizontalAlign="Left" Height="25" />
<Columns>...</Columns>
</asp:GridView>
<asp:GridView
ID="GridView3"
runat="server"
CellPadding="6"
GridLines="Horizontal"
Font-Names="Verdana"
Font-Size="10pt"
DataKeyNames="FeatureID"
AutoGenerateColumns="false"
allowpaging="false"
onrowcancelingedit="GridView3_RowCancelingEdit"
onrowediting="GridView3_RowEditing"
onrowupdating="GridView3_RowUpdating"
OnRowDataBound="GridView3_RowDataBound"
Width="730px">
<EditRowStyle Font-Bold="True" />
<HeaderStyle BackColor="#336699" ForeColor="White" HorizontalAlign="Left" Height="25" />
<Columns>...</Columns>
</asp:GridView>
<asp:GridView
ID="GridView4"
runat="server"
CellPadding="6"
GridLines="Horizontal"
Font-Names="Verdana"
Font-Size="10pt"
DataKeyNames="InterfaceID"
AutoGenerateColumns="false"
allowpaging="false"
onrowcancelingedit="GridView4_RowCancelingEdit"
onrowediting="GridView4_RowEditing"
onrowupdating="GridView4_RowUpdating"
OnRowDataBound="GridView4_RowDataBound"
Width="730px">
<EditRowStyle Font-Bold="True" />
<HeaderStyle BackColor="#336699" ForeColor="White" HorizontalAlign="Left" Height="25" />
<Columns>...</Columns>
</asp:GridView>
回答: この記事は、人々は、これが重複したと主張し、私は答えを投稿することはできませんが殺到したかのように見て、私は行きますよ編集ここで答えを置くために解決策が
0123との2つのコードの問題の行を置き換えた(すべての信用と賞賛は@ConnorsFanわたしも)
グリッドIDを追加する –
あなたのコードで 'cmd.ExecuteNonQuery();'は何をするのですか?また、 "GridView" +(n + 1)を "GridView" +(n + 1).ToString()に変更します。 –
私がアクセスしようとしているグリッドIDはGridView1、GridView2、GridView3、GridView4です。 私は信じることは何もしない。 .ToString()を追加すると、前と同じエラーが返されます。 – JDawg848