webForumDet fria alternativet

Visa inmatad data

.NETur .NET

5 svar · 639 visningar · startad av emton

Medlem sedan juni 200589 inlägg
Frågan#1

Hej på er!
Nu är jag i lag med att lära mig asp.net. Har gjort ett snabbt grundutkast. Men någonstans gör jag fel. När jag har skrivit in namn och epost och klickar på knappen så vill jag att det som laddats in i databasen ska visas i en ruta. Det går bra när jag visar all data som finns i databasen men jag få som sagt inte upp det sist inskrivna resultatet, altså bara det, som ett kvitto på att det kommit in. Inte så bra på att förklara men jag tror att de flesta här är så duktiga att ni förstår :)

Medlem sedan dec. 20014 239 inlägg
#2

Använd dig av parametiserad insert istället.

Ett litet exempel

 using (MySqlCommand cmd = new MySqlCommand())
            {

                cmd.CommandText = "insert into medlem(fnamn, enamn) VALUES(?fornamn,?efternamn)";
                cmd.Parameters.Add("?fornamn", MySqlDbType.VarChar).Value = TBFornamn.Text;
                cmd.Parameters.Add("?efternamn", MySqlDbType.VarChar).Value = TBEfternamn.Text;

                cmd.Connection = conn;
                conn.Open();
                cmd.ExecuteNonQuery();

}

Efter du gjort din insert binder du om datakällan. Så bör din lista uppdateras.

Sedan tycker jag du ska skilja din presentation från kod. Alltså en fil med koden och en med presentationen.

Medlem sedan juni 200589 inlägg
#3

Zaiman skrev:

Använd dig av parametiserad insert istället.

Ett litet exempel

 using (MySqlCommand cmd = new MySqlCommand())
            {


                cmd.CommandText = "insert into medlem(fnamn, enamn) VALUES(?fornamn,?efternamn)";
                cmd.Parameters.Add("?fornamn", MySqlDbType.VarChar).Value = TBFornamn.Text;
                cmd.Parameters.Add("?efternamn", MySqlDbType.VarChar).Value = TBEfternamn.Text;

                cmd.Connection = conn;
                conn.Open();
                cmd.ExecuteNonQuery();

}

Efter du gjort din insert binder du om datakällan. Så bör din lista uppdateras.

Sedan tycker jag du ska skilja din presentation från kod. Alltså en fil med koden och en med presentationen.

Varför ska jag använda detta i stället? Vad är skillnaden? Vad menar du med "binder om datakällan".
Sen ville jag att det som skrivits in ska komma upp i en box så det blir som typ "du har skrivit namn: ..... och epost: .....". Är väldigt ny på detta :r

Medlem sedan dec. 20014 239 inlägg
#4

För att få ut i en textbox får du konkatinera ihop en sträng av de värden du vill ha ut

ett litet exempel:

string mintext;
mintext = "Din epost är:" + Textbox1.text;

För att få ut den i en textbox

Textbox2.text = mintext;

Sen finns det många bättre sätt att konkatinera strängar i .NET.

Att använda en parametriserad fråga förhindrar något som kallas SQL injections. Vilket innebär att det blir svårare att krascha eller hacka databasen.

Har du någon referens som du lär dig ifrån?

Medlem sedan juni 200589 inlägg
#5

Ja då förstår jag att det är bättre att använda paramatriserad fråga. I första delen så får jag ut det som finns i databasen genom att loopa igenom rader och skriva ut infon. Jag kan dock inte få detta att funka när jag sätter in data. Begriper inte varför. Om jag använder din string så borde det bli för min del
string mintext;
mintext = "Din epost är:" + txtEmail.Text;
ListBox1.Text = mintext;
Men jag fattar inte riktigt, var ska jag ha detta för att det ska funka? Försökte lägga den innan conn.close men inget händer. Ska jag ha något mer till?
Min referens är skolan, det är dock lite enkelspårigt där så jag försöker hitta olika lösningar genom forum, det blir mer intressant och bredare inlärning så:)

Medlem sedan juni 200589 inlägg
#6

emton skrev:

Ja då förstår jag att det är bättre att använda paramatriserad fråga. I första delen så får jag ut det som finns i databasen genom att loopa igenom rader och skriva ut infon. Jag kan dock inte få detta att funka när jag sätter in data. Begriper inte varför. Om jag använder din string så borde det bli för min del
string mintext;
mintext = "Din epost är:" + txtEmail.Text;
ListBox1.Text = mintext;
Men jag fattar inte riktigt, var ska jag ha detta för att det ska funka? Försökte lägga den innan conn.close men inget händer. Ska jag ha något mer till?
Min referens är skolan, det är dock lite enkelspårigt där så jag försöker hitta olika lösningar genom forum, det blir mer intressant och bredare inlärning så:)

Har nu ändrat en hel del i koden och nuvarande problem är att få in svarsalternativen från varje alternativ i radiobutton i databasen. Vet inte om jag ska ha vanlig radiobutton eller radiobuttonlist? Begriper inte heller hur jag ska skriva för att få det att sparas i databasen under fraga1

cmd.CommandText = "INSERT INTO asp (name, email, fraga1) VALUES ('" + txtNamn.Text + "', '" + txtEmail.Text + "', '" + strFraga1 + "')";
            cmd.Connection = conn;
            myAdapter.SelectCommand = cmd;
            myAdapter.Fill(ds, "asp");

<div id="strFraga1" runat="server">
        <asp:RadioButton ID="rbtnJag" runat="server" /><asp:Label ID="lblJag" runat="server" Text="Jag"></asp:Label><br />
        <asp:RadioButton ID="rbtnHan" runat="server" /><asp:Label ID="lblHan" runat="server" Text="Han"></asp:Label><br />
        <asp:RadioButton ID="rbtnHon" runat="server" /><asp:Label ID="lblHon" runat="server"
            Text="Hon"></asp:Label><br />
        <asp:RadioButton ID="rbtnDen" runat="server" /><asp:Label ID="lblDen" runat="server"
            Text="Den"></asp:Label><br />
        <asp:RadioButton ID="rbtnAnnat1" runat="server" /><asp:Label ID="lblAnnat1" runat="server"
            Text="Annat "></asp:Label><asp:TextBox ID="txtAnnat1" runat="server"></asp:TextBox>
    </div>
130 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)