<?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>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Update σε Join Tables</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3076.aspx</link><pubDate>Fri, 24 Jun 2005 21:21:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3076</guid><dc:creator>PhilipKalogero</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3076.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=3076</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Φίλε Γιώργο, σου στέλνω λίγο κώδικα που κάνω update το ApoTr talbe. Δυστυχώς δεν έχω μεγάλη οικιότητα με Access και χρησιμοποίησα Sql Server. Φαντάζομαι ομως οτι δεν εχουμε τεράστιες διαφορές τουλάχιτον για το Update.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="source"&gt;&lt;table border="0" cellspacing="0" width="100%"&gt;&lt;tr&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey" width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey"&gt;&lt;br&gt;&lt;font face="Lucida Console, Courier" size="2"&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Private&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; DataSet = &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;Private&lt;/font&gt;&lt;font size="2"&gt; _da &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; OleDbDataAdapter = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; OleDbDataAdapter&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Private&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; populateGrid()&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Αλλαξε το ConnectionString. Στο παράδειγμα παίζω με SqlServer&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; cn &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; OleDbConnection = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; OleDbConnection("Provider=SQLOLEDB;Data Source=(local);Initial Catalog=GeorgeDB;User ID=sa;Password=;")&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Εχω κάνει select ένα παραπάνω πεδίο που φαντάζομαι οτι είναι το primary key του APOTR.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Αυτό είναι αναγκαίο για να μπορέσει να βρεθεί το row που θα γίνει update.&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; cmdSelect &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; OleDbCommand = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; OleDbCommand("SELECT APO1.APO1ID, APO1.ADESCR, APOTR.SOMEVALUE, APOTR.APOTRID FROM APO1 INNER JOIN APOTR ON APO1.APO1ID = APOTR.APO1ID", cn)&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Θα προτιμούσα να ηταν sp αλλά για ευκολία στο διάβασμα τώρα εγινε command text&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; cmdUpdate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; OleDbCommand = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; OleDbCommand("UPDATE APOTR SET APOTR.SOMEVALUE = ?, APOTR.APO1ID = ? WHERE APOTRID = ?", cn)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Πρόσεξε εδώ την τελευταία παράμετρο μέσω της οποίας κάνεις Map τις παράμετρους με το πραγματικά Columns στη βάση&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' έτσι ώστε ο DataAdapter να ξέρει ποιο column πάει σε ποια παράμετρο.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;cmdUpdate.CommandType = CommandType.Text&lt;/p&gt;&lt;p&gt;cmdUpdate.Parameters.Add("@SomeValue", OleDbType.VarChar, 50, "SOMEVALUE")&lt;/p&gt;&lt;p&gt;cmdUpdate.Parameters.Add("@Apo1ID", OleDbType.Integer, 4, "APO1ID")&lt;/p&gt;&lt;p&gt;cmdUpdate.Parameters.Add("@ApoTrID", OleDbType.Integer, 4, "APOTRID")&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Γεμίζουμε SelectCommand + UpdateCommand. Inserts και Deletes δεν γίνονται. &lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Αν θέλεις να κάνεις και Inserts/Deletes θα πρέπει να φτιάξεις commands και για&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' αυτά και να τα αναθέσεις στο _da.InsertCommand και _da.DeleteCommand αντίστοιχα.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;_da.SelectCommand = cmdSelect&lt;/p&gt;&lt;p&gt;_da.UpdateCommand = cmdUpdate&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;_da.Fill(_ds, "GeorgeTable")&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' GeorgeTable είναι το mapping name με το οποίο εμφανίζεται το &lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' table που γεμίζουμε στο DataSet&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&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; OleDbException&lt;/p&gt;&lt;p&gt;MessageBox.Show(ex.Message)&lt;/p&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;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;DataGrid1.SetDataBinding(_ds, "GeorgeTable")&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' Θα μπορούσες να βάλεις .DataSource, .DataMember&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' DataGrid1.DataSource = _ds&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;' DataGrid1.DataMember = "GeorgeTable"&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;Sub&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Private&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; saveDataSet()&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;_da.Update(_ds, "GeorgeTable")&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; OleDbException&lt;/p&gt;&lt;p&gt;MessageBox.Show(ex.Message)&lt;/p&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;/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;Sub&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/pre&gt; &lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Update σε Join Tables</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3073.aspx</link><pubDate>Fri, 24 Jun 2005 19:53:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3073</guid><dc:creator>gmlogic</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3073.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=3073</wfw:commentRss><description>&lt;p&gt;Λοιπόν το συγκεκριμένο Query με προβλημάτιζε απο την VB6 με Access&lt;br /&gt;Έχουμε πχ ένα Datagrid όπου απεικονίζει στις γραμμές του το Query&lt;br /&gt; &lt;table style="WIDTH: 100%" cellspacing="1" cellpadding="1" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;column1&lt;/td&gt; &lt;td&gt;column2&lt;/td&gt; &lt;td&gt;column3&lt;/td&gt; &lt;td&gt;column4&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;APOTR.APO1ID&lt;/td&gt; &lt;td&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;APO1.ADESCR&lt;/font&gt;&lt;/td&gt; &lt;td&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;APOTR.VALUE&lt;/font&gt;&lt;/td&gt; &lt;td&gt;APOTR.APOTRID&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;κλπ&lt;br /&gt;sSQL=Query&lt;br /&gt;&lt;font color="#008000" size="2"&gt; &lt;p&gt;RS.Open sSQL, db, adOpenStatic, adLockOptimistic &lt;br /&gt;Set Datagrid1.DataSource = RS&lt;br /&gt;Σε RS.Update βγάζει err -2147467259(Ανεπαρκής πληροφορίες στήλης κλειδιών για ενημέρωση ή ανανέωση.)&lt;br /&gt;&lt;font color="#000000"&gt;&lt;br /&gt;Και λογικό γιατί μάλλον δεν μπορεί να κάνει ταυτόχρονα ενημέρωση σε δύο Tables&lt;br /&gt;Λοιπόν και εγώ αποσύνδεα την RS από την βάση γινόταν το Update και στην εξοδο&lt;br /&gt;της Form ενημέρωνα το APOTR πίνακα από την RS με αναφορά το APOTR.APOTRID=TR!APOTRID γιατί βασικά αυτός ο πίνακας με ενδιέφερε&lt;br /&gt;Τον APO1 τον ήθελα μόνο για να βλεπω την περιγραφή του είδους&lt;br /&gt;Δεν ξέρω αν είναι ο καλύτερος τρόπος αλλά αυτόν σκέφτηκα&lt;br /&gt;&lt;br /&gt;Θα ήθελα μιας και περνάω σε .ΝΕΤ να ξέρω πως θά το κανω&lt;img src="/forums//emoticons/emotion-18.gif" alt="[:^)]" /&gt;&lt;br /&gt;&lt;br /&gt;Σας ευχαριστώ πολύ&lt;/font&gt;&lt;br /&gt;&lt;img src="/forums//emoticons/emotion-15.gif" alt="[8-|]" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#000000"&gt;Αγαπητέ&lt;/font&gt;&lt;br /&gt;&lt;span class="inlineLink"&gt;&lt;strong&gt;PhilipKalogero&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;span class="txt2"&gt;&lt;font color="#000000"&gt;Αν θελεις πες μου τον κώδικα&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RS.Open sSQL, db, adOpenStatic, adLockOptimistic 'adOpenKeyset, adLockOptimistic&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Update σε Join Tables</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3068.aspx</link><pubDate>Fri, 24 Jun 2005 16:36:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3068</guid><dc:creator>PhilipKalogero</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3068.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=3068</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Γιώργο μήπως θα επρεπε να δεις την εναλλακτική λύση&amp;nbsp;stored procedure που θα την "δεσεις" στο InsertCommand / UpdateCommand. Στις παραμέτρους της sp όπως θα τις ορίσεις θα βάλεις σαν Source Column το όνομα του column των tables που αντιστοιχούν και μετά ασε τον DataAdapter να κανει τη δουλείά.&lt;br /&gt;&lt;br /&gt;Αν θες κώδικα γι αυτό πες μου.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Update σε Join Tables</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3066.aspx</link><pubDate>Fri, 24 Jun 2005 15:58:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3066</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3066.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=3066</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;cap wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt;Γιώργο έχεις ένα πεδίο ως primary key και στους δύο πίνακες που ονομάζεται APO1ID ή δεν το έχεις γράψει σωστά; Μήπως το πρόβλημα εστιάζεται εκεί; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="Georgia" size="2"&gt;Γιατί είμαι με την εντύπωση, ότι ο DataAdapter δεν γράφει μόνος του τα SQL statements για INSERT, UPDATE, DELETE όταν πρόκεται για JOINed SELECT Query;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;George J.&lt;/font&gt;</description></item><item><title>Re: Update σε Join Tables</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3065.aspx</link><pubDate>Fri, 24 Jun 2005 10:02:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3065</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3065.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=3065</wfw:commentRss><description>Γιώργο έχεις ένα πεδίο ως primary key και στους δύο πίνακες που ονομάζεται APO1ID ή δεν το έχεις γράψει σωστά; Μήπως το πρόβλημα εστιάζεται εκεί;</description></item><item><title>Update σε Join Tables</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3064.aspx</link><pubDate>Fri, 24 Jun 2005 07:10:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3064</guid><dc:creator>gmlogic</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3064.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=3064</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;ΑΓΑΠΗΤΟΙ&lt;br /&gt;Έχουμε πχ δύο Tables APO1 (MF ΑΠΟΘΗΚΗΣ) ΚΑΙ APOTR (αρχείο εγραφών αποθηκης) συνδεδεμένα με ένα field APO1ID&lt;br /&gt;Fields APO1 πχ APO1ID,ADESCR&lt;br /&gt;Fields APOTR πχ APOTRID,APO1ID,VALUE&lt;br /&gt;Query γιά OleDbDataAdapter1&lt;br /&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APO1.APO1ID,&amp;nbsp; APO1.ADESCR, APOTR.APO1ID,APOTR.VALUE&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (APO1 INNER JOIN&amp;nbsp; APOTR ON APO1.APO1ID = APOTR.APO1ID)&lt;br /&gt;Μύνημα&lt;br /&gt;Generated UPDATE statement.&lt;br /&gt;The original query has select list has columns from multiple tables.The statement&lt;br /&gt;cannot be generated automatically for this type of query&lt;br /&gt;Πως θα το κάνουμε το UPDATE&lt;br /&gt;&lt;img src="/forums//emoticons/emotion-10.gif" alt="Embarrassed" /&gt;&lt;br /&gt;Ευχαριστώ Γιώργος&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item></channel></rss>