Avatar billede gulkings Nybegynder
06. maj 2003 - 15:46 Der er 1 kommentar og
1 løsning

hente null fra DB

Hej alle !

Jeg arbejder med et datagrid i C#/code behind. I dette datagrid har jeg en hyperlink column, der redirecter til en side, hvor man kan 'adde' ekstra data til DB.
Så vidt, så godt.
Men - Man må kun kunne 'adde' data én gang pr. række, dvs. at man kun må trykke på hyperlinket én gang pr. række, ellers skal der komme en fejlmedd.
Jeg har et felt i DB, hvor jeg indsætter et ettal(1) hvis der er blevet lagt ekstra data ind vha. hyperlinket. Jeg har nedenstående kode, men kan ikke få det til at virke...:

        private void DataGrid1_addtestreport(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            sqlConnection1.Open();
            sqlDataAdapter1.SelectCommand.CommandText = "SELECT testreport_added FROM dbo.component WHERE Component_id ='"+Session["component_id"]+"'";
            sqlDataAdapter1.SelectCommand.Parameters["@searchtext"].Value = "%"+TextBox_search.Text+"%";
            sqlDataAdapter1.SelectCommand.ExecuteNonQuery();
           
            if (sqlDataAdapter1.SelectCommand.ExecuteNonQuery() == 0)
            {
                Session["component_id"] = e.Item.Cells[0].Text;
                Response.Redirect("addtestreport.aspx");
            }
            else
            {
                Label5.Text = "You cannot add a testreport to this component!!!";
            }
            sqlConnection1.Close();
        }

Er der nogen der kan fortælle mig, hvad jeg gør galt/mangler ???

TIA

Jønne
Avatar billede z42cool Nybegynder
08. maj 2003 - 09:37 #1
ExecuteNonQuery returnerer det antal rækker som din query har påvirket, men en select statement påvirker ikke rækker, prøv med:

private void DataGrid1_addtestreport(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            sqlConnection1.Open();
            sqlDataAdapter1.SelectCommand.CommandText = "SELECT testreport_added FROM dbo.component WHERE Component_id ='"+Session["component_id"]+"'";
            sqlDataAdapter1.SelectCommand.Parameters["@searchtext"].Value = "%"+TextBox_search.Text+"%";
                       
            if (sqlDataAdapter1.SelectCommand.ExecuteScalar() == null)
            {
                Session["component_id"] = e.Item.Cells[0].Text;
                Response.Redirect("addtestreport.aspx");
            }
            else
            {
                Label5.Text = "You cannot add a testreport to this component!!!";
            }
            sqlConnection1.Close();
        }
Avatar billede gulkings Nybegynder
13. maj 2003 - 14:06 #2
Her er hvad jeg ultimativt gjorde for at få det til at virke...:

        private void DataGrid1_addtestreport(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            Label5.Visible = false;
            sqlConnection1.Open();
            sqlDataAdapter1.SelectCommand.CommandText = "SELECT testreport_added FROM dbo.component WHERE Component_id ='"+e.Item.Cells[0].Text+"'";
            sqlDataAdapter1.SelectCommand.Parameters["@searchtext"].Value = "%"+TextBox_search.Text+"%";
                     
            //Check whether ExecuteScalar returns value 1 or 2.
            if (Convert.ToString(sqlDataAdapter1.SelectCommand.ExecuteScalar()) == "2")
            {
                Label5.Visible = false;
                Session["component_id"] = e.Item.Cells[0].Text;
                Response.Redirect("addtestreport.aspx");
            }
            else
            {
                Label5.Visible = true;
                Label5.Text = "A testreport has already been added to this component!!!";
            }
            sqlConnection1.Close();
        }

Tak for Hjælpen !!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester