我想通过点击按钮来显示下一条记录。这是我的代码
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(); 对象引用未设置对象。
请帮帮我
答案 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)
为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"]
为null,则数据库中为空。如果不是这样,请调试数据库插入代码。
如果txtName
为null,那是因为您在初始化txtName
之前执行此代码。确保在初始化txtName
之后,您的代码才会执行。