У меня есть экран отчета с 6 текстовыми полями. Я устанавливаю флажки и ищу данные в базе данных с помощью SQL-запроса. Когда я нажимаю кнопку создания отчета, он не показывает никаких данных в таблице. Я просто вставил вид сетки из своего набора инструментов на экран и хочу заполнить его своим кодом C # и командой SQL. Я что-то упускаю?

protected void Button1_Click(object sender, EventArgs e)
{
    connect = new SqlConnection(@"Data Source=LP12;Initial Catalog=SmmsData;Integrated Security=True");
    connect.Open();

    SqlCommand cmd = new SqlCommand();
    cmd.Connection = connect;
        cmd.CommandText = "SELECT DrukSensor, FlowSensor, TempSensor, KwaliteitSensor, Toerental, OlieVerbruik"
        + " FROM SysteemSensorInfo"
        + " WHERE DrukSensor=@DrukSensor"
        + " AND FlowSensor=@FlowSensor"
        + " AND TempSensor=@TempSensor"
        + " AND KwaliteitSensor=@KwaliteitSensor"
        + " AND Toerental=@Toerental"
        + " AND Olieverbruik=@OlieVerbruik"
        ;

    cmd.Parameters.Add("@DrukSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@FlowSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@TempSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@KwaliteitSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@Toerental", SqlDbType.Bit);
    cmd.Parameters.Add("@OlieVerbruik", SqlDbType.Bit);

    cmd.Parameters["@DrukSensor"].Value = CheckBoxDruk.Checked;
    cmd.Parameters["@FlowSensor"].Value = CheckBoxFlow.Checked;
    cmd.Parameters["@TempSensor"].Value = CheckBoxTemp.Checked;
    cmd.Parameters["@KwaliteitSensor"].Value = CheckKwaliteit.Checked;
    cmd.Parameters["@Toerental"].Value = CheckBoxToerenTal.Checked;
    cmd.Parameters["@OlieVerbruik"].Value = CheckBoxOlieVerbruik.Checked;

    DataSet ds = new DataSet();
    new SqlDataAdapter(cmd).Fill(ds);
    GridView1.DataSource = ds.Tables[0];
    GridView1.AutoGenerateColumns = true;
}
0
Rico Brouwer 7 Сен 2016 в 15:15

3 ответа

Лучший ответ

Вы не связали data с gridview. Привязать данные к gridview с помощью DataBind

GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
1
Mairaj Ahmad 7 Сен 2016 в 12:19

Используйте BindData для своего gridview, который привязывает все данные к вашему gridview

DataSet ds = new DataSet();
new SqlDataAdapter(cmd).Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
GridView1.AutoGenerateColumns = true;
0
Shekhar Patel 7 Сен 2016 в 12:22

Попробуй это:

connect = new SqlConnection(@"Data Source=LP12;Initial Catalog=SmmsData;Integrated Security=True");
    connect.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = connect;
     sqlCmd.CommandType = CommandType.Text;
        cmd.CommandText = "SELECT DrukSensor, FlowSensor, TempSensor, KwaliteitSensor, Toerental, OlieVerbruik"
        + " FROM SysteemSensorInfo"
        + " WHERE DrukSensor=@DrukSensor"
        + " AND FlowSensor=@FlowSensor"
        + " AND TempSensor=@TempSensor"
        + " AND KwaliteitSensor=@KwaliteitSensor"
        + " AND Toerental=@Toerental"
        + " AND Olieverbruik=@OlieVerbruik"
        ;
    cmd.Parameters.Add("@DrukSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@FlowSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@TempSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@KwaliteitSensor", SqlDbType.Bit);
    cmd.Parameters.Add("@Toerental", SqlDbType.Bit);
    cmd.Parameters.Add("@OlieVerbruik", SqlDbType.Bit);
    cmd.Parameters["@DrukSensor"].Value = CheckBoxDruk.Checked;
    cmd.Parameters["@FlowSensor"].Value = CheckBoxFlow.Checked;
    cmd.Parameters["@TempSensor"].Value = CheckBoxTemp.Checked;
    cmd.Parameters["@KwaliteitSensor"].Value = CheckKwaliteit.Checked;
    cmd.Parameters["@Toerental"].Value = CheckBoxToerenTal.Checked;
    cmd.Parameters["@OlieVerbruik"].Value = CheckBoxOlieVerbruik.Checked;
    SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);.
    DataTable dtRecord = new DataTable();
    sqlDataAdap.Fill(dtRecord);
    GridView1.DataSource = dtRecord;       
    GridView1.AutoGenerateColumns = true;
}          
0
Subash B 7 Сен 2016 в 12:32