Результат DataSet всегда пуст в C# - PullRequest
1 голос
/ 08 мая 2020

Я получаю конкретное значение столбца с помощью DataSet.

Это мой код:

public DataSet GetRedirectURL(string emailId)
{
    DataSet ds = new DataSet();
    using (SqlConnection con = new SqlConnection(@"Connection_String_Here"))
    {
        con.Open();
        SqlCommand sqlComm = new SqlCommand("usp_Login", con)
        {
            CommandType = CommandType.StoredProcedure
        };
        sqlComm.Parameters.AddWithValue("@EmailId", emailId);

        SqlDataAdapter da = new SqlDataAdapter
        {
            SelectCommand = sqlComm
        };

        da.Fill(ds);
    }
    return ds;
}

Я также использовал вместо него DataTable, но результат тот же. Я проверил свою хранимую процедуру, и когда я передаю параметр, он показывает данные. Итак, с SP все в порядке. Но таблица не показывает никаких данных и всегда пуста, как показано ниже:

enter image description here

Что мне не хватает? Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 08 мая 2020

Я предлагаю вам сначала оценить содержание вашего DataSet. Например, введите в окне «Немедленное окно» (или добавьте быстрое наблюдение), чтобы проверить ds.Tables[0].Rows.Count. По сути, чтобы подтвердить, что ваш DataSet был правильно заполнен содержимым, полученным из базы данных, и сосредоточьтесь на назначении данных из DataSet объекту сетки, который вы используете для его отображения.

Также , метод .Fill () имеет возвращаемый объект, который представляет собой int, представляющий количество строк, которые были успешно заполнены в целевой объект. Например:

int result = da.Fill(ds);

Проверьте значение result после выполнения метода .Fill () .

Наконец, я думаю, вы используете объект DataGridView для визуализации результатов. Если да, то как вы привязываете данные? Должно быть что-то вроде:

dataGridView1.DataSource = ds.Tables[0];

PS: Как я читал в других комментариях, нет, вам не нужно выполнять метод .Open () для соединения. Это не обязательно, это делается неявно при использовании (с использованием SqlConnection conn = SqlConnection ..)

...