Вам потребуется изменить метод getComputer
, чтобы он возвращал DataSet
, например:
public DataSet getComputer(int id) {
Как только это будет сделано, мы можем вызвать его и заполнить элементы управления формы при загрузке страницы примерно следующим образом:
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
int id = 3; // get from querystring
DataSet ds = getComputer(id);
DataRow dr = ds.Tables[0].Rows[0]; // get the first row returned
// populate form controls
txtFirstName.Text = dr["FirstName"].ToString();
ddlState.SelectedValue = dr["State"].ToString();
}
}
Ниже приведена обновленная версия getComputer
, которая всегда будет возвращать значение и немного более узкая:
public DataSet getComputer(int id) // you don't need to pass int by ref unless you're planning on changing it inside this method
{
DataSet data = new DataSet();
using (SqlConnection conn = new SqlConnection("Server=JURA;Database=ReadyForSeven;User id=;Password=")) {
using (SqlCommand cmd = new SqlCommand("SELECT * FROM computers WHERE id = @id", conn)) {
cmd.Parameters.AddWithValue("id", id);
using (SqlDataAdapter da = new SqlDataAdapter(cmd)) {
da.Fill(data);
return data;
}
}
}
}
Мне пришлось удалить блог try / catch, чтобы метод всегда возвращал значение. Если вам абсолютно необходим блок try / catch, вам нужно вернуть пустой DataSet
в конце метода, чтобы правильно скомпилировать.