Я создал класс, который возвращает таблицу данных, когда я использую класс в winform c #, dataGridView заполняется правильно, используя следующий код
DataTable dt = dbLib.GetData();
if (dt != null)
{
dataGridView1.DataSource = dbLib.GetData();
}
Однако, когда я пытаюсь сделать то же самое с ASP.NET, я получаю
Ссылка на объект не установлена для экземпляра объекта.
используя следующий код
DataTable dt = dbLib.GetData();
if (dt != null)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
класс dbLib GetData2 предназначен для доказательства того, что он не вызван SQlite или данными
public static DataTable GetData()
{
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db");
SQLiteCommand cmd = new SQLiteCommand("SELECT count(Message) AS Occurrences, Message FROM evtlog GROUP BY Message ORDER BY Occurrences DESC LIMIT 25", cnn);
cnn.Open();
SQLiteDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dt = new DataTable();
dt.Load(dr);
return dt;
}
public static DataTable GetData2()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Occurrences", typeof(string)));
dt.Columns.Add(new DataColumn("Message", typeof(string)));
DataRow dataRow = dt.NewRow();
dataRow["Occurrences"] = "1";
dataRow["Message"] = "a";
dt.Rows.Add(dataRow);
return dt;
}
код asp
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="Occurrences" HeaderText="Occurrences"></asp:BoundField>
<asp:BoundField DataField="Message" HeaderText="Message"></asp:BoundField>
</Columns>
</asp:GridView>