private void ViewDataForm_Load(object sender, EventArgs e) { DataTable dt = new DataTable("NewTable"); DataSet ds = new DataSet(); ds.Tables.Add(dt); DataColumn column; column = new DataColumn(); column.DataType = System.Type.GetType("System.Int32"); column.ColumnName = "id"; column.ReadOnly = true; column.Unique = true; dt.Columns.Add(column); dt.Columns.Add("Month", typeof(String)); dt.Columns.Add("Balance", typeof(String)); DataColumn[] PrimaryKeyColumns = new DataColumn[1]; PrimaryKeyColumns[0] = dt.Columns["id"]; dt.PrimaryKey = PrimaryKeyColumns; String sqlQuery = ""; int counter = 0; System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection( ("Data Source=newDB.sdf;Max Database Size=2047")); try { //Let's assing our sql data reader SqlCeDataReader myReader = null; // Let's connect to it conn.Open(); System.Data.SqlServerCe.SqlCeCommand cmd = conn.CreateCommand(); sqlQuery = "SELECT SUM(income-expense) AS Balance, date_y AS Date FROM Income WHERE date = '" + comboBoxCurrentlyShowingYear.SelectedItem + "' GROUP BY date_y ORDER BY " + comboBoxSortBy.SelectedItem + " " + comboBoxASCDESC.SelectedItem; cmd.CommandText = sqlQuery; myReader = cmd.ExecuteReader(); while (myReader.Read()) { counter++; dt.Rows.Add(counter, myReader[1].ToString(), myReader[0].ToString()); } dataGridIncome.DataSource = ds.DefaultViewManager.CreateDataView(dt); int primaryKey = dataGridIncome.CurrentRowIndex + 1; DataRow findRow = ds.Tables[0].NewRow(); findRow = dt.Rows.Find(primaryKey); //!#!#! I get a message after that Message.Show() method. It says: NullReferenceException was unhandled. !#!#! MessageBox.Show("Current row index: " + findRow[0].ToString() + "\nMonth: " + findRow[1].ToString() + "\nBalance: " + findRow[2].ToString()); } finally { //Close that connection NOW conn.Close(); ds.Tables.Clear(); } }