mikeoabban Ответов: 2

Отображение формы данных sql db в datagridview с помеченными столбцами


у меня есть форма с данными gridview, которая имеет 6 помеченных столбцов. я хочу отобразить данные из
sql db только на 3 из помеченных столбцов. я пробовал, но отображается только первая строка в БД
в объекте datagridview. пожалуйста, помогите мне
ниже приведены коды, которые я использовал

public void loadproduct3()
        {
            SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
            conn.ConnectionString = "Data Source=USER-PC;Initial Catalog=BARDB;User ID=sa;Password=mike";
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            string sqlQueryy = null;
            sqlQueryy = "select * from tblproduct";
            cmd.Connection = conn;
            cmd.CommandText = sqlQueryy;
            cmd.CommandType = System.Data.CommandType.Text;
            SqlDataReader dr = null;
            dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                for (int i = 0; i < dgvSales.Rows.Count; i++)
                {
                    dgvSales.Rows[i].Cells["clmProductid"].Value = dr["productid"].ToString();
                    dgvSales.Rows[i].Cells["clmProductname"].Value = dr["productname"].ToString();
                    dgvSales.Rows[i].Cells["clmUnitprice"].Value = dr["unitprice"].ToString();
                }
            }
            else
            {
                //return false;
            }
            conn.Close();
        }

[no name]

"отображается только строка в БД", вы читаете данные из своего datareader только один раз, так что все, что вы получите, - это одна строка.

mikeoabban

пожалуйста, как мне прочитать dtatbase несколько раз

[no name]

Вы не. Вы считываете данные из своего считывателя по одному разу для каждой строки. Попробуйте заменить "если "на"пока".

mikeoabban

я попробовал и показал только последнюю строку в БД

[no name]

Значит, ты сделал что-то не так, вот и все, что я могу тебе сказать.

2 Ответов

Рейтинг:
2

Srinivas Kalabarigi

Используйте ниже:

public void loadproduct3()
    {
        SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
        conn.ConnectionString = "Data Source=USER-PC;Initial Catalog=BARDB;User ID=sa;Password=mike";


        SqlDataAdapter oSDA = new SqlDataAdapter("select * from tblproduct", conn);
        DataSet oDs = new DataSet();
        oSDA.SelectCommand.CommandType = CommandType.Text;
        oSDA.Fill(oDs);

        if (oDs.Tables[0].Rows.Count > 0)
        {
            dgvSales.DataSource = oDs;
            dgvSales.DataBind();
        }
    }


Рейтинг:
1

Aleemuddin Siddiqui

Майк я думаю ты должен использовать первый
в то время как dr.read() раньше ... для ... для петли
который закончится с концом в то время как