Найти следующую запись в базе данных в C # - PullRequest
1 голос
/ 06 декабря 2011

Я хочу показать следующую запись, нажав кнопку. Вот мой код

private DataTable GetData()
        {
            DataTable dt = new DataTable();

            SqlConnection connection = new SqlConnection(connectionString);
            try
            {
                connection.Open();
                SqlCommand sqlCmd = new SqlCommand("Select * From Data", connection);
                SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);

                sqlDa.Fill(dt);
            }
            catch (System.Data.SqlClient.SqlException ex)
            {

            }
            finally
            {
                connection.Close();
            }
            return dt;
        }


        public Form1()
        {

            DataTable dt = GetData();
            if (dt.Rows.Count > 0)
            {
                // Populate the TextBox with the first entry on page load
                txtName.Text = dt.Rows[0]["Name"].ToString();
            }
        }

но я получаю исключение для txtName.Text = dt.Rows [0] ["Name"]. ToString (); Ссылка на объект не установлена ​​для объекта.

Пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Первое, что нужно проверить на стороне БД, действительно ли есть столбец с именем Name, возможно, этот столбец был псевдонимом разработчика sql или вами:

SELECT Name AS NotAnotherName, ID FROM...

Второе, что нужно сделать, прежде чем читать его содержимое, проверить, является ли оно null или содержит ли столбец DBNull.value, который отличается от null, поэтому:

If (dt.Rows[0]["Name"] != DBNull.Value)
  //proceed

(Вы можете добавить if после проверки, если количество строк> 0).

1 голос
/ 06 декабря 2011

Добавьте в null проверки для txtName и dt.Rows[0]["Name"]:

if (dt.Rows.Count > 0 && txtName != null && dt.Rows[0]["Name"] != null) 
{
    txtName.Text = dt.Rows[0]["Name"].ToString(); 
} 

Если dt.Rows[0]["Name"] равно нулю, оно равно нулю в базе данных. Если этого не ожидается, отладьте код вставки базы данных.

Если txtName равно нулю, это потому, что вы выполняете этот код до инициализации txtName. Убедитесь, что ваш код не выполняется до тех пор, пока txtName не будет инициализирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...