<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ADO.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/78/ShowForum.aspx</link><description>Θέματα σχετικά με την προσπέλαση δεδομένων μέσω του ADO.NET και του System.Data namespace</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Τιμή ενός πεδίου πίνακα</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/8720.aspx</link><pubDate>Mon, 16 Jan 2006 21:25:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:8720</guid><dc:creator>thoidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/8720.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=8720</wfw:commentRss><description>Ευχαριστώ πολύ για τη βοήθεια.&lt;br&gt;Έχεις απόλυτα δίκαιο και θα χρησιμοποιήσω παραμέτρους... απλά ο κώδικας που έστειλα ήταν αντιγραφή-επικόλληση από το msn tutorial και είχα κολλήσει στην τιμή του πεδίου που δεν μπορούσα να βρω εντολή για να την προσπελάσω.&lt;br&gt;&lt;br&gt;Καμία πρόταση για βιβλίο (έχω παραγγείλει το "Beginning ASP.NET 2.0 Databases Beta Preview") ?</description></item><item><title>Απ: Τιμή ενός πεδίου πίνακα</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/8719.aspx</link><pubDate>Mon, 16 Jan 2006 21:10:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:8719</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/8719.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=8719</wfw:commentRss><description>&lt;P&gt;Παίρνεις την τιμή ενός πεδίου με:&lt;/P&gt;
&lt;P&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt; &lt;br /&gt;&lt;br /&gt;ds.Tables[0].Rows[0][&lt;span style="color: #666666;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"userId"&lt;/span&gt;]&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Μερικά σχόλια στον κώδικά σου, ιδιαίτερα επειδή κάνει user authentication:&lt;/P&gt;
&lt;P&gt;Αποτελεί μεγάλο security hole να εισάγεις απευθείας το user id που έχει εισάγει ο χρήστης μέσα στην sql. Αν π.χ. ο χρήστης εισάγει για user id το &lt;/P&gt;
&lt;P&gt;'; TRUNCATE TABLE Users; select '&lt;/P&gt;
&lt;P&gt;Τότε τελικό query θα είναι&lt;/P&gt;
&lt;P&gt;Select * From [Users] Where userId=''; TRUNCATE TABLE Users; select ''&lt;/P&gt;
&lt;P&gt;το οποίο θα κάνει κάτι πολύ κακό :-)&lt;/P&gt;
&lt;P&gt;Είναι προτιμότερο να βάλεις το user id σαν named parameter ως εξής:&lt;/P&gt;
&lt;P&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;string&lt;/span&gt; strSQL &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"SELECT @ FROM Users WHERE UserID=@UserID"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;System.Data.SqlClient.SqlDataAdapter da &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;new&lt;/span&gt; System.Data.SqlClient.SqlDataAdapter(strSQL, connection);&lt;br /&gt;&lt;br /&gt;da.SelectCommand.Parameters.Add(&lt;span style="color: #666666;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"@UserID"&lt;/span&gt;, strUserID);&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Επίσης, είναι προτιμότερο να στέλνεις το password στη βάση σαν παράμετρο με ένα statement του τύπου:&lt;/P&gt;
&lt;P&gt;SELECT @ FROM Users WHERE UserID=@UserID AND Password=@Password&lt;/P&gt;
&lt;P&gt;Γιατί αλλιώς ένας "πονηρός" χρήστης με τη βοήθεια του debugger μπορεί να υποκλέψει passwords (αν τα αποθηκεύεις σε plain text, κάτι που επίσης είναι κακό).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Τιμή ενός πεδίου πίνακα</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/8717.aspx</link><pubDate>Mon, 16 Jan 2006 20:47:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:8717</guid><dc:creator>thoidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/8717.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=8717</wfw:commentRss><description>&lt;P&gt;&lt;FONT color=#ff0000&gt;Έχω τον εξής κώδικα για να ζητήσω δεδομένα από τον πίνακα χρηστών όταν πατηθεί το πλήκτρο ΟΚ...&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Protected&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;FONT size=2&gt; Button1_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Object&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;' Retrieve the connection string stored in the Web.config file.&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; connectionString &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; = ConfigurationManager.ConnectionStrings(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"MegaConnectionString"&lt;/FONT&gt;&lt;FONT size=2&gt;).ConnectionString&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; ds &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; DataSet()&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; queryString &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"Select * From [Users] Where userId='"&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; xrhsths.Text &amp;amp; &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"'"&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Try&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;' Connect to the database and run the query.&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; connection &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; SqlConnection(connectionString)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; adapter &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; SqlDataAdapter(queryString, connection)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;' Fill the DataSet.&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;adapter.Fill(ds)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Catch&lt;/FONT&gt;&lt;FONT size=2&gt; ex &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; Exception&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;' The connection failed. Display an error message.&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;Message.Text = &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"Unable to connect to the database."&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Try&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;.....&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=2&gt;Μπορεί κάποιος να μου πει πώς θα αναφερθώ στο πεδίο userId των δεδομένων που ήρθαν με την SQL που εκτελέσθηκε ώστε να το συγκρίνω με κάποια τιμή...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description></item></channel></rss>