try that way. Checking the length also if the length is greater than 20.
string str = "comments.aspx?id=" + dr["id"] + ">" + (Convert.IsDBNull(dr["comment_body"]) ? "" : dr["comment_body"].ToString().Substring(0, dr["comment_body"].ToString().Length > 20 ? 20 : dr["comment_body"].ToString().Length -1));