<?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>Απ: Πρόβλημα με DIRECTCAST Int σε Byte</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31470.aspx</link><pubDate>Sun, 06 May 2007 02:45:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31470</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31470.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=31470</wfw:commentRss><description>&lt;P&gt;&lt;BR&gt;Και να θες να το ψάξεις, πώς είναι δυνατόν να ισχύει αυτό που λέει ο Παναγιώτης, ξεκίνα από εδώ:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.codeguru.com/csharp/.net/net_general/il/article.php/c4667/"&gt;http://www.codeguru.com/csharp/.net/net_general/il/article.php/c4667/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/P&gt;</description></item><item><title>Απ: Πρόβλημα με DIRECTCAST Int σε Byte</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31464.aspx</link><pubDate>Sat, 05 May 2007 20:38:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31464</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31464.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=31464</wfw:commentRss><description>&lt;P&gt;Ακόμα καλύτερα, μην βάλεις καθόλου casts! Είναι εντελώς περιττά, και στον αρχικό κώδικα, και στη VB. Μπορείς άνετα να γράψεις: &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;m_cmdInsertCustomers.Parameters.&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Add&lt;/SPAN&gt;(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;New&lt;/SPAN&gt; SqlParameter(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"@RETURN_VALUE"&lt;/SPAN&gt;, SqlDbType.&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Int&lt;/SPAN&gt;, 4, ParameterDirection.ReturnValue, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;False&lt;/SPAN&gt;, 0, 0, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;""&lt;/SPAN&gt;, DataRowVersion.Current, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Nothing&lt;/SPAN&gt;))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Πρόβλημα με DIRECTCAST Int σε Byte</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31463.aspx</link><pubDate>Sat, 05 May 2007 18:48:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31463</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31463.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=31463</wfw:commentRss><description>&lt;P&gt;Αντί για &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P&gt;DirectCast((0), Byte)) &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;χρησιμοποίησε &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P&gt;CType(0, System.Byte)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Υπάρχει μια σύγχυση για τη χρήση αυτών των δύο και πολλοί προτιμούν την DirectCast χωρίς να το σκεφτούν δεύτερη φορά απλά και μόνο επειδή είναι πιο γρήγορη. Πότε χρησιμοποιούμε την μία&amp;nbsp;και πότε την άλλη λοιπόν;&lt;/P&gt;
&lt;P dir=ltr&gt;Ας πούμε ότι θέλουμε να μετατρέψουμε το string "11111" σε integer (για την ακρίβεια System.Int32). Αν πούμε &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P dir=ltr&gt;Dim s as String = "11111"&lt;/P&gt;
&lt;P dir=ltr&gt;Dim x As Integer = CType(s, Integer)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;θα πετύχει γιατί κάτι τέτοιο είναι εφικτό (όπως &lt;A href="http://msdn2.microsoft.com/en-us/library/7k6y2h6x(vs.71).aspx"&gt;λέει και το MSDN&lt;/A&gt; "&lt;STRONG&gt;CType&lt;/STRONG&gt; succeeds as long as there is a valid conversion defined between the expression and the type"). Αν όμως πούμε &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P dir=ltr&gt;Dim x As Integer = DirectCast(s, Integer)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;θα αποτύχει γιατί όπως διαβάζουμε "&lt;STRONG&gt;DirectCast&lt;/STRONG&gt; requires the run-time type of an object variable to be the same as the specified type". Πότε θα συμβεί αυτό; Στην περίπτωση που πούμε:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P dir=ltr&gt;Dim&amp;nbsp;οbj as Object = "abcdefg"&lt;/P&gt;
&lt;P dir=ltr&gt;Dim s As&amp;nbsp;String = DirectCast(obj, String)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Μπορεί το παραπάνω να μοιάζει αρχικά κάπως παράδοξο καθώς έχουμε συνηθίσει να θεωρούμε τον τύπο String ως έναν απλό τύπο αλλά ο λόγος που πετυχαίνει είναι ότι στο .NET, το String κληρονομεί τον τύπο System.Object. Έτσι, η DirectCast δεν κάνει καμία "πραγματική" δουλειά, δεν "επεξεργάζεται" το οbj, απλά βάζει ένα νέο&amp;nbsp;reference σε μια υπάρχουσα περιοχή μνήμης. Όπως φαίνεται, γι αυτόν ακριβώς τον λόγο είναι γρήγορη αλλά κι επικίνδυνη καθώς αν τα περιεχόμενα του obj δεν είναι ήδη στον κατάλληλο τύπο, τότε θα έχουμε run-time error. Επιπρόσθετα, η CType είναι VB.NET specific, δηλαδή χρησιμοποιεί τις βοηθητικές βιβλιοθήκες της VB.NET, ενώ τη DirectCast τη συναντάμε και στη C#. Βέβαια, όταν λέμε "πιο γρήγορη" εννοούμε ότι έχει περίπου διπλάσια ταχύτητα όταν πρόκειται για value types ενώ για reference types είναι λίγο-πολύ το ίδιο.&lt;/P&gt;
&lt;P&gt;Τέλος, ρίξε μια ματιά εδώ: &lt;A href="http://www.codeproject.com/dotnet/CheatSheetCastingNET.asp"&gt;http://www.codeproject.com/dotnet/CheatSheetCastingNET.asp&lt;/A&gt;&amp;nbsp;για την περίπτωση που χρειαστείς να κάνεις μετατροπές από κώδικα C# σε VB.NET και ο converter δεν τα βγάζει πέρα...&lt;/P&gt;</description></item><item><title>Πρόβλημα με DIRECTCAST Int σε Byte</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31460.aspx</link><pubDate>Sat, 05 May 2007 17:52:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31460</guid><dc:creator>Ηλίας Κεκάκος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31460.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=31460</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Προσπαθώ να μετατρέψω ένα C# προγραμμα σε VB με την βοήθεια του SHARPDEVELOPER και έχω το παρακάτω πρόβλημα:&lt;/P&gt;
&lt;P&gt;C#: &lt;FONT size=2&gt;m_cmdCustomersInsert&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;Parameters&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;B&gt;&lt;FONT color=#191970 size=2&gt;Add&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;(&lt;/FONT&gt;&lt;B&gt;&lt;FONT color=#008b8b size=2&gt;new &lt;/FONT&gt;&lt;FONT color=#191970 size=2&gt;SqlParameter&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;"@RETURN_VALUE"&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, &lt;/FONT&gt;&lt;FONT size=2&gt;SqlDbType&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;Int&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#00008b size=2&gt;4&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, &lt;/FONT&gt;&lt;FONT size=2&gt;ParameterDirection&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;ReturnValue&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, &lt;/FONT&gt;&lt;B&gt;&lt;FONT color=#008b8b size=2&gt;false&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, ((&lt;/FONT&gt;&lt;FONT size=2&gt;System&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;Byte&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;)(&lt;/FONT&gt;&lt;FONT color=#00008b size=2&gt;0&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;)), ((&lt;/FONT&gt;&lt;FONT size=2&gt;System&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;Byte&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;)(&lt;/FONT&gt;&lt;FONT color=#00008b size=2&gt;0&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;)), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;""&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, &lt;/FONT&gt;&lt;FONT size=2&gt;DataRowVersion&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;Current&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;, &lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;null&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#006400 size=2&gt;));&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#006400 size=2&gt;&lt;FONT color=#000000&gt;Translation to VB.NET: &lt;FONT size=2&gt;m_cmdInsertCustomers.Parameters.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; SqlParameter(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"@RETURN_VALUE"&lt;/FONT&gt;&lt;FONT size=2&gt;, SqlDbType.Int, 4, ParameterDirection.ReturnValue, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/FONT&gt;&lt;FONT size=2&gt;, (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;DirectCast&lt;/FONT&gt;&lt;FONT size=2&gt;((0), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Byte&lt;/FONT&gt;&lt;FONT size=2&gt;)), (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;DirectCast&lt;/FONT&gt;&lt;FONT size=2&gt;((0), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Byte&lt;/FONT&gt;&lt;FONT size=2&gt;)), &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;""&lt;/FONT&gt;&lt;FONT size=2&gt;, DataRowVersion.Current, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Nothing&lt;/FONT&gt;&lt;FONT size=2&gt;))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#006400 size=2&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;Το πρόβλημα είναι στο (&lt;FONT color=#0000ff size=2&gt;DirectCast&lt;/FONT&gt;&lt;FONT size=2&gt;((0), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Byte&lt;/FONT&gt;&lt;FONT size=2&gt;)) και το μύνημα λάθους είναι: &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Value of type 'Integer' cannot be converted to 'Byte'&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#006400 size=2&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;Πιό είναι το λάθος στην μετάφραση;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description></item></channel></rss>