在C#中查找数据库中的下一条记录

时间:2011-12-05 20:30:00

标签: c# sql-server database

我想通过点击按钮来显示下一条记录。这是我的代码

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 个答案:

答案 0 :(得分:2)

要检查数据库方面的第一件事,是否真的有一个列Name,可能是这个列是由sql开发人员或你自己别名的:

SELECT Name AS NotAnotherName, ID FROM...

要做的第二件事是在阅读它的内容之前检查它是null还是列包含与DBNull.value不同的null所以:

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

(您可以在检查行数> 0后添加if。)

答案 1 :(得分:1)

nulltxtName添加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"]为null,则数据库中为空。如果不是这样,请调试数据库插入代码。

如果txtName为null,那是因为您在初始化txtName之前执行此代码。确保在初始化txtName之后,您的代码才会执行​​。