我正在尝试使用下面的代码执行文本框自动完成,但它会给出错误
ERROR :"Object reference not set to an instance of an object"
在这一行:
for (int count = 0; count < dt.Rows.Count; count++)
任何人都可以帮助我吗?
private void tbMemberName_TextChanged_1(object sender, EventArgs e)
{
tbMemberName.AutoCompleteMode = AutoCompleteMode.Suggest;
tbMemberName.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection namec = new AutoCompleteStringCollection();
//string search ="%"+ tbMemberName.Text +"%";
//string @Name = tbMemberName.Text;
String sql =
@"SELECT DISTINCT(member_Firstname +''+ member_Lastname) AS Name FROM members WHERE Name Like '%'+tbMemberName.Text+'%'";
DataTable dt = MemberFormHelper.GetData(sql, mf);
if (dt.Rows.Count >= 0)
{
for (int count = 0; count < dt.Rows.Count; count++)
{
namec.Add(dt.Rows[count][Name].ToString());
}
}
tbMemberName.AutoCompleteCustomSource = namec;
}
答案 0 :(得分:0)
如果NRE来自这一行
for (int count = 0; count < dt.Rows.Count; count++)
那只能意味着dt
为空。
所以MemberFormHelper.GetData(sql, mf);
返回一个空值。在循环之前修复GetData()
或检查dt
为空。
答案 1 :(得分:0)
尝试
for (int count = 0; count < dt.Rows.Count-1; count++)
如果行数为10,则需要从0循环到9(10-1)。
干杯