1 // Licensed to the .NET Foundation under one or more agreements. 2 // See the LICENSE file in the project root for more information. 3 4 // Copyright (c) 2004 Mainsoft Co. 5 // 6 // Permission is hereby granted, free of charge, to any person obtaining 7 // a copy of this software and associated documentation files (the 8 // "Software"), to deal in the Software without restriction, including 9 // without limitation the rights to use, copy, modify, merge, publish, 10 // distribute, sublicense, and/or sell copies of the Software, and to 11 // permit persons to whom the Software is furnished to do so, subject to 12 // the following conditions: 13 // 14 // The above copyright notice and this permission notice shall be 15 // included in all copies or substantial portions of the Software. 16 // 17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 21 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 22 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 23 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 // 25 26 using Xunit; 27 using System.ComponentModel; 28 29 using System.Collections; 30 using System.Runtime.Serialization; 31 using System.Runtime.Serialization.Formatters.Tests; 32 using System.Xml; 33 using System.Xml.Schema; 34 using System.IO; 35 using System.Globalization; 36 37 namespace System.Data.Tests 38 { 39 public class DataSetTypedDataSetTest 40 { 41 private string _eventStatus = string.Empty; 42 43 [Fact] TypedDataSet()44 public void TypedDataSet() 45 { 46 int i = 0; 47 //check dataset constructor 48 myTypedDataSet ds = null; 49 DataSet unTypedDs = new DataSet(); 50 ds = new myTypedDataSet(); 51 Assert.False(ds == null); 52 Assert.Equal(typeof(myTypedDataSet), ds.GetType()); 53 54 // fill dataset 55 ds.ReadXml(new StringReader( 56 @"<?xml version=""1.0"" standalone=""yes""?> 57 <myTypedDataSet xmlns=""http://www.tempuri.org/myTypedDataSet.xsd""> 58 <Order_x0020_Details> 59 <OrderID>10250</OrderID> 60 <ProductID>41</ProductID> 61 <UnitPrice>7.7000</UnitPrice> 62 <Quantity>10</Quantity> 63 <Discount>5.0</Discount> 64 </Order_x0020_Details> 65 <Order_x0020_Details> 66 <OrderID>10250</OrderID> 67 <ProductID>51</ProductID> 68 <UnitPrice>42.4000</UnitPrice> 69 <Quantity>35</Quantity> 70 <Discount>5.0</Discount> 71 </Order_x0020_Details> 72 <Order_x0020_Details> 73 <OrderID>10250</OrderID> 74 <ProductID>65</ProductID> 75 <UnitPrice>16.8000</UnitPrice> 76 <Quantity>15</Quantity> 77 <Discount>5.0</Discount> 78 </Order_x0020_Details> 79 <Order_x0020_Details> 80 <OrderID>10251</OrderID> 81 <ProductID>22</ProductID> 82 <UnitPrice>16.8000</UnitPrice> 83 <Quantity>6</Quantity> 84 <Discount>5.0</Discount> 85 </Order_x0020_Details> 86 <Order_x0020_Details> 87 <OrderID>10251</OrderID> 88 <ProductID>57</ProductID> 89 <UnitPrice>15.6000</UnitPrice> 90 <Quantity>15</Quantity> 91 <Discount>5.0</Discount> 92 </Order_x0020_Details> 93 <Order_x0020_Details> 94 <OrderID>10251</OrderID> 95 <ProductID>65</ProductID> 96 <UnitPrice>16.8000</UnitPrice> 97 <Quantity>20</Quantity> 98 <Discount>5.0</Discount> 99 </Order_x0020_Details> 100 <Order_x0020_Details> 101 <OrderID>10252</OrderID> 102 <ProductID>20</ProductID> 103 <UnitPrice>64.8000</UnitPrice> 104 <Quantity>40</Quantity> 105 <Discount>5.0</Discount> 106 </Order_x0020_Details> 107 <Order_x0020_Details> 108 <OrderID>10252</OrderID> 109 <ProductID>33</ProductID> 110 <UnitPrice>2.0000</UnitPrice> 111 <Quantity>25</Quantity> 112 <Discount>5.0</Discount> 113 </Order_x0020_Details> 114 <Order_x0020_Details> 115 <OrderID>10252</OrderID> 116 <ProductID>60</ProductID> 117 <UnitPrice>27.2000</UnitPrice> 118 <Quantity>40</Quantity> 119 <Discount>5.0</Discount> 120 </Order_x0020_Details> 121 <Order_x0020_Details> 122 <OrderID>10253</OrderID> 123 <ProductID>31</ProductID> 124 <UnitPrice>10.0000</UnitPrice> 125 <Quantity>20</Quantity> 126 <Discount>5.0</Discount> 127 </Order_x0020_Details> 128 <Order_x0020_Details> 129 <OrderID>10253</OrderID> 130 <ProductID>39</ProductID> 131 <UnitPrice>14.4000</UnitPrice> 132 <Quantity>42</Quantity> 133 <Discount>5.0</Discount> 134 </Order_x0020_Details> 135 <Order_x0020_Details> 136 <OrderID>10253</OrderID> 137 <ProductID>49</ProductID> 138 <UnitPrice>16.0000</UnitPrice> 139 <Quantity>40</Quantity> 140 <Discount>5.0</Discount> 141 </Order_x0020_Details> 142 <Order_x0020_Details> 143 <OrderID>10254</OrderID> 144 <ProductID>24</ProductID> 145 <UnitPrice>3.6000</UnitPrice> 146 <Quantity>15</Quantity> 147 <Discount>5.0</Discount> 148 </Order_x0020_Details> 149 <Order_x0020_Details> 150 <OrderID>10254</OrderID> 151 <ProductID>55</ProductID> 152 <UnitPrice>19.2000</UnitPrice> 153 <Quantity>21</Quantity> 154 <Discount>5.0</Discount> 155 </Order_x0020_Details> 156 <Order_x0020_Details> 157 <OrderID>10254</OrderID> 158 <ProductID>74</ProductID> 159 <UnitPrice>8.0000</UnitPrice> 160 <Quantity>21</Quantity> 161 <Discount>5.0</Discount> 162 </Order_x0020_Details> 163 <Order_x0020_Details> 164 <OrderID>10255</OrderID> 165 <ProductID>2</ProductID> 166 <UnitPrice>15.2000</UnitPrice> 167 <Quantity>20</Quantity> 168 <Discount>5.0</Discount> 169 </Order_x0020_Details> 170 <Order_x0020_Details> 171 <OrderID>10255</OrderID> 172 <ProductID>16</ProductID> 173 <UnitPrice>13.9000</UnitPrice> 174 <Quantity>35</Quantity> 175 <Discount>5.0</Discount> 176 </Order_x0020_Details> 177 <Order_x0020_Details> 178 <OrderID>10255</OrderID> 179 <ProductID>36</ProductID> 180 <UnitPrice>15.2000</UnitPrice> 181 <Quantity>25</Quantity> 182 <Discount>5.0</Discount> 183 </Order_x0020_Details> 184 <Order_x0020_Details> 185 <OrderID>10255</OrderID> 186 <ProductID>59</ProductID> 187 <UnitPrice>44.0000</UnitPrice> 188 <Quantity>30</Quantity> 189 <Discount>5.0</Discount> 190 </Order_x0020_Details> 191 <Order_x0020_Details> 192 <OrderID>10256</OrderID> 193 <ProductID>53</ProductID> 194 <UnitPrice>26.2000</UnitPrice> 195 <Quantity>15</Quantity> 196 <Discount>5.0</Discount> 197 </Order_x0020_Details> 198 <Order_x0020_Details> 199 <OrderID>10256</OrderID> 200 <ProductID>77</ProductID> 201 <UnitPrice>10.4000</UnitPrice> 202 <Quantity>12</Quantity> 203 <Discount>5.0</Discount> 204 </Order_x0020_Details> 205 <Order_x0020_Details> 206 <OrderID>10257</OrderID> 207 <ProductID>27</ProductID> 208 <UnitPrice>35.1000</UnitPrice> 209 <Quantity>25</Quantity> 210 <Discount>5.0</Discount> 211 </Order_x0020_Details> 212 <Order_x0020_Details> 213 <OrderID>10257</OrderID> 214 <ProductID>39</ProductID> 215 <UnitPrice>14.4000</UnitPrice> 216 <Quantity>6</Quantity> 217 <Discount>5.0</Discount> 218 </Order_x0020_Details> 219 <Order_x0020_Details> 220 <OrderID>10257</OrderID> 221 <ProductID>77</ProductID> 222 <UnitPrice>10.4000</UnitPrice> 223 <Quantity>15</Quantity> 224 <Discount>5.0</Discount> 225 </Order_x0020_Details> 226 <Order_x0020_Details> 227 <OrderID>10258</OrderID> 228 <ProductID>2</ProductID> 229 <UnitPrice>15.2000</UnitPrice> 230 <Quantity>50</Quantity> 231 <Discount>5.0</Discount> 232 </Order_x0020_Details> 233 <Order_x0020_Details> 234 <OrderID>10258</OrderID> 235 <ProductID>5</ProductID> 236 <UnitPrice>17.0000</UnitPrice> 237 <Quantity>65</Quantity> 238 <Discount>5.0</Discount> 239 </Order_x0020_Details> 240 <Order_x0020_Details> 241 <OrderID>10258</OrderID> 242 <ProductID>32</ProductID> 243 <UnitPrice>25.6000</UnitPrice> 244 <Quantity>6</Quantity> 245 <Discount>5.0</Discount> 246 </Order_x0020_Details> 247 <Order_x0020_Details> 248 <OrderID>10259</OrderID> 249 <ProductID>21</ProductID> 250 <UnitPrice>8.0000</UnitPrice> 251 <Quantity>10</Quantity> 252 <Discount>5.0</Discount> 253 </Order_x0020_Details> 254 <Order_x0020_Details> 255 <OrderID>10259</OrderID> 256 <ProductID>37</ProductID> 257 <UnitPrice>20.8000</UnitPrice> 258 <Quantity>1</Quantity> 259 <Discount>5.0</Discount> 260 </Order_x0020_Details> 261 <Order_x0020_Details> 262 <OrderID>10260</OrderID> 263 <ProductID>41</ProductID> 264 <UnitPrice>7.7000</UnitPrice> 265 <Quantity>16</Quantity> 266 <Discount>5.0</Discount> 267 </Order_x0020_Details> 268 <Order_x0020_Details> 269 <OrderID>10260</OrderID> 270 <ProductID>57</ProductID> 271 <UnitPrice>15.6000</UnitPrice> 272 <Quantity>50</Quantity> 273 <Discount>5.0</Discount> 274 </Order_x0020_Details> 275 <Order_x0020_Details> 276 <OrderID>10260</OrderID> 277 <ProductID>62</ProductID> 278 <UnitPrice>39.4000</UnitPrice> 279 <Quantity>15</Quantity> 280 <Discount>5.0</Discount> 281 </Order_x0020_Details> 282 <Order_x0020_Details> 283 <OrderID>10260</OrderID> 284 <ProductID>70</ProductID> 285 <UnitPrice>12.0000</UnitPrice> 286 <Quantity>21</Quantity> 287 <Discount>5.0</Discount> 288 </Order_x0020_Details> 289 <Order_x0020_Details> 290 <OrderID>10261</OrderID> 291 <ProductID>21</ProductID> 292 <UnitPrice>8.0000</UnitPrice> 293 <Quantity>20</Quantity> 294 <Discount>5.0</Discount> 295 </Order_x0020_Details> 296 <Order_x0020_Details> 297 <OrderID>10261</OrderID> 298 <ProductID>35</ProductID> 299 <UnitPrice>14.4000</UnitPrice> 300 <Quantity>20</Quantity> 301 <Discount>5.0</Discount> 302 </Order_x0020_Details> 303 <Order_x0020_Details> 304 <OrderID>10262</OrderID> 305 <ProductID>5</ProductID> 306 <UnitPrice>17.0000</UnitPrice> 307 <Quantity>12</Quantity> 308 <Discount>5.0</Discount> 309 </Order_x0020_Details> 310 <Order_x0020_Details> 311 <OrderID>10262</OrderID> 312 <ProductID>7</ProductID> 313 <UnitPrice>24.0000</UnitPrice> 314 <Quantity>15</Quantity> 315 <Discount>5.0</Discount> 316 </Order_x0020_Details> 317 <Order_x0020_Details> 318 <OrderID>10262</OrderID> 319 <ProductID>56</ProductID> 320 <UnitPrice>30.4000</UnitPrice> 321 <Quantity>2</Quantity> 322 <Discount>5.0</Discount> 323 </Order_x0020_Details> 324 <Order_x0020_Details> 325 <OrderID>10263</OrderID> 326 <ProductID>16</ProductID> 327 <UnitPrice>13.9000</UnitPrice> 328 <Quantity>60</Quantity> 329 <Discount>5.0</Discount> 330 </Order_x0020_Details> 331 <Order_x0020_Details> 332 <OrderID>10263</OrderID> 333 <ProductID>24</ProductID> 334 <UnitPrice>3.6000</UnitPrice> 335 <Quantity>28</Quantity> 336 <Discount>5.0</Discount> 337 </Order_x0020_Details> 338 <Order_x0020_Details> 339 <OrderID>10263</OrderID> 340 <ProductID>30</ProductID> 341 <UnitPrice>20.7000</UnitPrice> 342 <Quantity>60</Quantity> 343 <Discount>5.0</Discount> 344 </Order_x0020_Details> 345 <Order_x0020_Details> 346 <OrderID>10263</OrderID> 347 <ProductID>74</ProductID> 348 <UnitPrice>8.0000</UnitPrice> 349 <Quantity>36</Quantity> 350 <Discount>5.0</Discount> 351 </Order_x0020_Details> 352 <Order_x0020_Details> 353 <OrderID>10264</OrderID> 354 <ProductID>2</ProductID> 355 <UnitPrice>15.2000</UnitPrice> 356 <Quantity>35</Quantity> 357 <Discount>5.0</Discount> 358 </Order_x0020_Details> 359 <Order_x0020_Details> 360 <OrderID>10264</OrderID> 361 <ProductID>41</ProductID> 362 <UnitPrice>7.7000</UnitPrice> 363 <Quantity>25</Quantity> 364 <Discount>5.0</Discount> 365 </Order_x0020_Details> 366 <Order_x0020_Details> 367 <OrderID>10265</OrderID> 368 <ProductID>17</ProductID> 369 <UnitPrice>31.2000</UnitPrice> 370 <Quantity>30</Quantity> 371 <Discount>5.0</Discount> 372 </Order_x0020_Details> 373 <Order_x0020_Details> 374 <OrderID>10265</OrderID> 375 <ProductID>70</ProductID> 376 <UnitPrice>12.0000</UnitPrice> 377 <Quantity>20</Quantity> 378 <Discount>5.0</Discount> 379 </Order_x0020_Details> 380 <Order_x0020_Details> 381 <OrderID>10266</OrderID> 382 <ProductID>12</ProductID> 383 <UnitPrice>30.4000</UnitPrice> 384 <Quantity>12</Quantity> 385 <Discount>5.0</Discount> 386 </Order_x0020_Details> 387 <Order_x0020_Details> 388 <OrderID>10267</OrderID> 389 <ProductID>40</ProductID> 390 <UnitPrice>14.7000</UnitPrice> 391 <Quantity>50</Quantity> 392 <Discount>5.0</Discount> 393 </Order_x0020_Details> 394 <Order_x0020_Details> 395 <OrderID>10267</OrderID> 396 <ProductID>59</ProductID> 397 <UnitPrice>44.0000</UnitPrice> 398 <Quantity>70</Quantity> 399 <Discount>5.0</Discount> 400 </Order_x0020_Details> 401 <Order_x0020_Details> 402 <OrderID>10267</OrderID> 403 <ProductID>76</ProductID> 404 <UnitPrice>14.4000</UnitPrice> 405 <Quantity>15</Quantity> 406 <Discount>5.0</Discount> 407 </Order_x0020_Details> 408 <Order_x0020_Details> 409 <OrderID>10268</OrderID> 410 <ProductID>29</ProductID> 411 <UnitPrice>99.0000</UnitPrice> 412 <Quantity>10</Quantity> 413 <Discount>5.0</Discount> 414 </Order_x0020_Details> 415 <Order_x0020_Details> 416 <OrderID>10268</OrderID> 417 <ProductID>72</ProductID> 418 <UnitPrice>27.8000</UnitPrice> 419 <Quantity>4</Quantity> 420 <Discount>5.0</Discount> 421 </Order_x0020_Details> 422 <Order_x0020_Details> 423 <OrderID>10269</OrderID> 424 <ProductID>33</ProductID> 425 <UnitPrice>2.0000</UnitPrice> 426 <Quantity>60</Quantity> 427 <Discount>5.0</Discount> 428 </Order_x0020_Details> 429 <Order_x0020_Details> 430 <OrderID>10269</OrderID> 431 <ProductID>72</ProductID> 432 <UnitPrice>27.8000</UnitPrice> 433 <Quantity>20</Quantity> 434 <Discount>5.0</Discount> 435 </Order_x0020_Details> 436 <Order_x0020_Details> 437 <OrderID>10270</OrderID> 438 <ProductID>36</ProductID> 439 <UnitPrice>15.2000</UnitPrice> 440 <Quantity>30</Quantity> 441 <Discount>5.0</Discount> 442 </Order_x0020_Details> 443 <Order_x0020_Details> 444 <OrderID>10270</OrderID> 445 <ProductID>43</ProductID> 446 <UnitPrice>36.8000</UnitPrice> 447 <Quantity>25</Quantity> 448 <Discount>5.0</Discount> 449 </Order_x0020_Details> 450 <Orders> 451 <OrderID>10250</OrderID> 452 <CustomerID>HANAR</CustomerID> 453 <EmployeeID>4</EmployeeID> 454 <OrderDate>1996-07-08T00:00:00.0000000+03:00</OrderDate> 455 <RequiredDate>1996-08-05T00:00:00.0000000+03:00</RequiredDate> 456 <ShippedDate>1996-07-12T00:00:00.0000000+03:00</ShippedDate> 457 </Orders> 458 <Orders> 459 <OrderID>10251</OrderID> 460 <CustomerID>VICTE</CustomerID> 461 <EmployeeID>3</EmployeeID> 462 <OrderDate>1996-07-08T00:00:00.0000000+03:00</OrderDate> 463 <RequiredDate>1996-08-05T00:00:00.0000000+03:00</RequiredDate> 464 <ShippedDate>1996-07-15T00:00:00.0000000+03:00</ShippedDate> 465 </Orders> 466 <Orders> 467 <OrderID>10252</OrderID> 468 <CustomerID>SUPRD</CustomerID> 469 <EmployeeID>4</EmployeeID> 470 <OrderDate>1996-07-09T00:00:00.0000000+03:00</OrderDate> 471 <RequiredDate>1996-08-06T00:00:00.0000000+03:00</RequiredDate> 472 <ShippedDate>1996-07-11T00:00:00.0000000+03:00</ShippedDate> 473 </Orders> 474 <Orders> 475 <OrderID>10253</OrderID> 476 <CustomerID>HANAR</CustomerID> 477 <EmployeeID>3</EmployeeID> 478 <OrderDate>1996-07-10T00:00:00.0000000+03:00</OrderDate> 479 <RequiredDate>1996-07-24T00:00:00.0000000+03:00</RequiredDate> 480 <ShippedDate>1996-07-16T00:00:00.0000000+03:00</ShippedDate> 481 </Orders> 482 <Orders> 483 <OrderID>10254</OrderID> 484 <CustomerID>CHOPS</CustomerID> 485 <EmployeeID>5</EmployeeID> 486 <OrderDate>1996-07-11T00:00:00.0000000+03:00</OrderDate> 487 <RequiredDate>1996-08-08T00:00:00.0000000+03:00</RequiredDate> 488 <ShippedDate>1996-07-23T00:00:00.0000000+03:00</ShippedDate> 489 </Orders> 490 <Orders> 491 <OrderID>10255</OrderID> 492 <CustomerID>RICSU</CustomerID> 493 <EmployeeID>9</EmployeeID> 494 <OrderDate>1996-07-12T00:00:00.0000000+03:00</OrderDate> 495 <RequiredDate>1996-08-09T00:00:00.0000000+03:00</RequiredDate> 496 <ShippedDate>1996-07-15T00:00:00.0000000+03:00</ShippedDate> 497 </Orders> 498 <Orders> 499 <OrderID>10256</OrderID> 500 <CustomerID>WELLI</CustomerID> 501 <EmployeeID>3</EmployeeID> 502 <OrderDate>1996-07-15T00:00:00.0000000+03:00</OrderDate> 503 <RequiredDate>1996-08-12T00:00:00.0000000+03:00</RequiredDate> 504 <ShippedDate>1996-07-17T00:00:00.0000000+03:00</ShippedDate> 505 </Orders> 506 <Orders> 507 <OrderID>10257</OrderID> 508 <CustomerID>HILAA</CustomerID> 509 <EmployeeID>4</EmployeeID> 510 <OrderDate>1996-07-16T00:00:00.0000000+03:00</OrderDate> 511 <RequiredDate>1996-08-13T00:00:00.0000000+03:00</RequiredDate> 512 <ShippedDate>1996-07-22T00:00:00.0000000+03:00</ShippedDate> 513 </Orders> 514 <Orders> 515 <OrderID>10258</OrderID> 516 <CustomerID>ERNSH</CustomerID> 517 <EmployeeID>1</EmployeeID> 518 <OrderDate>1996-07-17T00:00:00.0000000+03:00</OrderDate> 519 <RequiredDate>1996-08-14T00:00:00.0000000+03:00</RequiredDate> 520 <ShippedDate>1996-07-23T00:00:00.0000000+03:00</ShippedDate> 521 </Orders> 522 <Orders> 523 <OrderID>10259</OrderID> 524 <CustomerID>CENTC</CustomerID> 525 <EmployeeID>4</EmployeeID> 526 <OrderDate>1996-07-18T00:00:00.0000000+03:00</OrderDate> 527 <RequiredDate>1996-08-15T00:00:00.0000000+03:00</RequiredDate> 528 <ShippedDate>1996-07-25T00:00:00.0000000+03:00</ShippedDate> 529 </Orders> 530 <Orders> 531 <OrderID>10260</OrderID> 532 <CustomerID>OTTIK</CustomerID> 533 <EmployeeID>4</EmployeeID> 534 <OrderDate>1996-07-19T00:00:00.0000000+03:00</OrderDate> 535 <RequiredDate>1996-08-16T00:00:00.0000000+03:00</RequiredDate> 536 <ShippedDate>1996-07-29T00:00:00.0000000+03:00</ShippedDate> 537 </Orders> 538 <Orders> 539 <OrderID>10261</OrderID> 540 <CustomerID>QUEDE</CustomerID> 541 <EmployeeID>4</EmployeeID> 542 <OrderDate>1996-07-19T00:00:00.0000000+03:00</OrderDate> 543 <RequiredDate>1996-08-16T00:00:00.0000000+03:00</RequiredDate> 544 <ShippedDate>1996-07-30T00:00:00.0000000+03:00</ShippedDate> 545 </Orders> 546 <Orders> 547 <OrderID>10262</OrderID> 548 <CustomerID>RATTC</CustomerID> 549 <EmployeeID>8</EmployeeID> 550 <OrderDate>1996-07-22T00:00:00.0000000+03:00</OrderDate> 551 <RequiredDate>1996-08-19T00:00:00.0000000+03:00</RequiredDate> 552 <ShippedDate>1996-07-25T00:00:00.0000000+03:00</ShippedDate> 553 </Orders> 554 <Orders> 555 <OrderID>10263</OrderID> 556 <CustomerID>ERNSH</CustomerID> 557 <EmployeeID>9</EmployeeID> 558 <OrderDate>1996-07-23T00:00:00.0000000+03:00</OrderDate> 559 <RequiredDate>1996-08-20T00:00:00.0000000+03:00</RequiredDate> 560 <ShippedDate>1996-07-31T00:00:00.0000000+03:00</ShippedDate> 561 </Orders> 562 <Orders> 563 <OrderID>10264</OrderID> 564 <CustomerID>FOLKO</CustomerID> 565 <EmployeeID>6</EmployeeID> 566 <OrderDate>1996-07-24T00:00:00.0000000+03:00</OrderDate> 567 <RequiredDate>1996-08-21T00:00:00.0000000+03:00</RequiredDate> 568 <ShippedDate>1996-08-23T00:00:00.0000000+03:00</ShippedDate> 569 </Orders> 570 <Orders> 571 <OrderID>10265</OrderID> 572 <CustomerID>BLONP</CustomerID> 573 <EmployeeID>2</EmployeeID> 574 <OrderDate>1996-07-25T00:00:00.0000000+03:00</OrderDate> 575 <RequiredDate>1996-08-22T00:00:00.0000000+03:00</RequiredDate> 576 <ShippedDate>1996-08-12T00:00:00.0000000+03:00</ShippedDate> 577 </Orders> 578 <Orders> 579 <OrderID>10266</OrderID> 580 <CustomerID>WARTH</CustomerID> 581 <EmployeeID>3</EmployeeID> 582 <OrderDate>1996-07-26T00:00:00.0000000+03:00</OrderDate> 583 <RequiredDate>1996-09-06T00:00:00.0000000+03:00</RequiredDate> 584 <ShippedDate>1996-07-31T00:00:00.0000000+03:00</ShippedDate> 585 </Orders> 586 <Orders> 587 <OrderID>10267</OrderID> 588 <CustomerID>FRANK</CustomerID> 589 <EmployeeID>4</EmployeeID> 590 <OrderDate>1996-07-29T00:00:00.0000000+03:00</OrderDate> 591 <RequiredDate>1996-08-26T00:00:00.0000000+03:00</RequiredDate> 592 <ShippedDate>1996-08-06T00:00:00.0000000+03:00</ShippedDate> 593 </Orders> 594 <Orders> 595 <OrderID>10268</OrderID> 596 <CustomerID>GROSR</CustomerID> 597 <EmployeeID>8</EmployeeID> 598 <OrderDate>1996-07-30T00:00:00.0000000+03:00</OrderDate> 599 <RequiredDate>1996-08-27T00:00:00.0000000+03:00</RequiredDate> 600 <ShippedDate>1996-08-02T00:00:00.0000000+03:00</ShippedDate> 601 </Orders> 602 <Orders> 603 <OrderID>10269</OrderID> 604 <CustomerID>WHITC</CustomerID> 605 <EmployeeID>5</EmployeeID> 606 <OrderDate>1996-07-31T00:00:00.0000000+03:00</OrderDate> 607 <RequiredDate>1996-08-14T00:00:00.0000000+03:00</RequiredDate> 608 <ShippedDate>1996-08-09T00:00:00.0000000+03:00</ShippedDate> 609 </Orders> 610 <Orders> 611 <OrderID>10270</OrderID> 612 <CustomerID>WARTH</CustomerID> 613 <EmployeeID>1</EmployeeID> 614 <OrderDate>1996-08-01T00:00:00.0000000+03:00</OrderDate> 615 <RequiredDate>1996-08-29T00:00:00.0000000+03:00</RequiredDate> 616 <ShippedDate>1996-08-02T00:00:00.0000000+03:00</ShippedDate> 617 </Orders> 618 </myTypedDataSet>")); 619 620 // check DataSet named property "Orders" 621 myTypedDataSet.OrdersDataTable tblOrders = null; 622 tblOrders = ds.Orders; 623 Assert.Equal(ds.Tables["Orders"], tblOrders); 624 625 //check DataSet named property Orders - by index"); 626 tblOrders = ds.Orders; 627 Assert.Equal(ds.Tables[1], tblOrders); 628 629 //add new row AddTableNameRow, check row count"); 630 i = tblOrders.Rows.Count; 631 tblOrders.AddOrdersRow("SAVEA", 1, new DateTime(1998, 05, 01, 00, 00, 00, 000) 632 , new DateTime(1998, 05, 29, 00, 00, 00, 000) 633 , new DateTime(1998, 05, 04, 00, 00, 00, 000), 1, 30.0900m 634 , "Save-a-lot Markets", "187 Suffolk Ln.", "Boise", "ID", "83720", "USA"); 635 Assert.Equal(i + 1, tblOrders.Rows.Count); 636 637 //check the new row AutoIncrement field - AddTableNameRow 638 i = (int)tblOrders.Rows[tblOrders.Rows.Count - 2][0]; 639 Assert.Equal(i + 1, (int)tblOrders.Rows[tblOrders.Rows.Count - 1][0]); 640 641 //Create New Row using NewTableNameRow, check row != null 642 myTypedDataSet.OrdersRow drOrders = null; 643 drOrders = tblOrders.NewOrdersRow(); 644 Assert.False(drOrders == null); 645 646 //Create New Row using NewTableNameRow, check row state 647 Assert.Equal(DataRowState.Detached, drOrders.RowState); 648 649 //add new row NewTableNameRow, check row count 650 //drOrders.OrderID = DBNull.Value; 651 drOrders.CustomerID = "GREAL"; 652 drOrders.EmployeeID = 4; 653 drOrders.OrderDate = new DateTime(1998, 04, 30, 00, 00, 00, 000); 654 drOrders.RequiredDate = new DateTime(1998, 06, 11, 00, 00, 00, 000); 655 drOrders["ShippedDate"] = DBNull.Value; 656 drOrders.ShipVia = 3; 657 drOrders.Freight = 14.0100m; 658 drOrders.ShipName = "Great Lakes"; 659 drOrders.ShipAddress = "Food Market"; 660 drOrders.ShipCity = "Baker Blvd."; 661 drOrders.ShipRegion = "Eugene"; 662 drOrders.ShipPostalCode = "OR 97403"; 663 drOrders.ShipCountry = "USA"; 664 665 i = tblOrders.Rows.Count; 666 tblOrders.AddOrdersRow(drOrders); 667 Assert.Equal(i + 1, tblOrders.Rows.Count); 668 669 //check StrongTypingException 670 Assert.Throws<StrongTypingException>(() => 671 { 672 DateTime d = drOrders.ShippedDate; //drOrders.ShippedDate = null, will raise exception 673 }); 674 675 //check the new row AutoIncrement field - NewTableNameRow 676 i = (int)tblOrders.Rows[tblOrders.Rows.Count - 2][0]; 677 Assert.Equal(i + 1, (int)tblOrders.Rows[tblOrders.Rows.Count - 1][0]); 678 679 // convenience IsNull functions 680 // only if it can be null 681 Assert.False(drOrders.IsShipAddressNull()); 682 683 drOrders.SetShipAddressNull(); 684 Assert.True(drOrders.IsShipAddressNull()); 685 686 // Table exposes a public property Count == table.Rows.Count 687 Assert.Equal(tblOrders.Count, tblOrders.Rows.Count); 688 689 690 // find function 691 myTypedDataSet.OrdersRow dr = tblOrders[0]; 692 Assert.Equal(tblOrders.FindByOrderID(dr.OrderID), dr); 693 694 //Remove row and check row count 695 i = tblOrders.Count; 696 myTypedDataSet.OrdersRow drr = tblOrders[0]; 697 tblOrders.RemoveOrdersRow(drr); 698 Assert.Equal(i - 1, tblOrders.Count); 699 700 //first column is readonly 701 Assert.True(tblOrders.OrderIDColumn.ReadOnly); 702 703 //read only exception 704 Assert.Throws<ReadOnlyException>(() => 705 { 706 tblOrders[0].OrderID = 99; 707 }); 708 709 tblOrders.AcceptChanges(); 710 711 //Check table events 712 // add event handlers 713 ds.Orders.OrdersRowChanging += new myTypedDataSet.OrdersRowChangeEventHandler(T_Changing); 714 ds.Orders.OrdersRowChanged += new myTypedDataSet.OrdersRowChangeEventHandler(T_Changed); 715 ds.Orders.OrdersRowDeleting += new myTypedDataSet.OrdersRowChangeEventHandler(T_Deleting); 716 ds.Orders.OrdersRowDeleted += new myTypedDataSet.OrdersRowChangeEventHandler(T_Deleted); 717 718 //RowChange event order 719 tblOrders[0].ShipCity = "Tel Aviv"; 720 Assert.Equal("AB", _eventStatus); 721 722 _eventStatus = string.Empty; 723 //RowDelet event order 724 tblOrders[0].Delete(); 725 Assert.Equal("AB", _eventStatus); 726 727 //expose DataColumn as property 728 Assert.Equal(ds.Orders.OrderIDColumn, ds.Tables["Orders"].Columns["OrderID"]); 729 730 //Accept changes for all deleted and changedd rows. 731 ds.AcceptChanges(); 732 733 //check relations 734 //ChildTableRow has property ParentTableRow 735 myTypedDataSet.OrdersRow dr1 = ds.Order_Details[0].OrdersRow; 736 DataRow dr2 = ds.Order_Details[0].GetParentRow(ds.Relations[0]); 737 Assert.Equal(dr1, dr2); 738 739 //ParentTableRow has property ChildTableRow 740 myTypedDataSet.Order_DetailsRow[] drArr1 = ds.Orders[0].GetOrder_DetailsRows(); 741 DataRow[] drArr2 = ds.Orders[0].GetChildRows(ds.Relations[0]); 742 Assert.Equal(drArr1, drArr2); 743 744 //now test serialization of a typed dataset generated by microsoft's xsd.exe 745 DataSet1 ds1 = new DataSet1(); 746 ds1.DataTable1.AddDataTable1Row("test"); 747 ds1.DataTable1.AddDataTable1Row("test2"); 748 749 DataSet1 ds1load = BinaryFormatterHelpers.Clone(ds1); 750 751 Assert.True(ds1load.Tables.Contains("DataTable1")); 752 Assert.Equal("DataTable1DataTable", ds1load.Tables["DataTable1"].GetType().Name); 753 Assert.Equal(2, ds1load.DataTable1.Rows.Count); 754 Assert.Equal("DataTable1Row", ds1load.DataTable1[0].GetType().Name); 755 if (ds1load.DataTable1[0].Column1 == "test") 756 { 757 Assert.Equal("test2", ds1load.DataTable1[1].Column1); 758 } 759 else if (ds1load.DataTable1[0].Column1 == "test2") 760 { 761 Assert.Equal("test", ds1load.DataTable1[1].Column1); 762 } 763 else 764 { 765 Assert.False(true); 766 } 767 768 //now test when the mode is exclude schema 769 ds1.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.ExcludeSchema; 770 771 ds1load = BinaryFormatterHelpers.Clone(ds1); 772 773 Assert.True(ds1load.Tables.Contains("DataTable1")); 774 Assert.Equal("DataTable1DataTable", ds1load.Tables["DataTable1"].GetType().Name); 775 Assert.Equal(2, ds1load.DataTable1.Rows.Count); 776 Assert.Equal("DataTable1Row", ds1load.DataTable1[0].GetType().Name); 777 if (ds1load.DataTable1[0].Column1 == "test") 778 { 779 Assert.Equal("test2", ds1load.DataTable1[1].Column1); 780 } 781 else if (ds1load.DataTable1[0].Column1 == "test2") 782 { 783 Assert.Equal("test", ds1load.DataTable1[1].Column1); 784 } 785 else 786 { 787 Assert.False(true); 788 } 789 } 790 T_Changing(object sender, myTypedDataSet.OrdersRowChangeEvent e)791 protected void T_Changing(object sender, myTypedDataSet.OrdersRowChangeEvent e) 792 { 793 _eventStatus += "A"; 794 } 795 T_Changed(object sender, myTypedDataSet.OrdersRowChangeEvent e)796 protected void T_Changed(object sender, myTypedDataSet.OrdersRowChangeEvent e) 797 { 798 _eventStatus += "B"; 799 } 800 T_Deleting(object sender, myTypedDataSet.OrdersRowChangeEvent e)801 protected void T_Deleting(object sender, myTypedDataSet.OrdersRowChangeEvent e) 802 { 803 _eventStatus += "A"; 804 } 805 T_Deleted(object sender, myTypedDataSet.OrdersRowChangeEvent e)806 protected void T_Deleted(object sender, myTypedDataSet.OrdersRowChangeEvent e) 807 { 808 _eventStatus += "B"; 809 } 810 811 [Serializable] 812 [DesignerCategoryAttribute("code")] 813 [ToolboxItem(true)] 814 public class myTypedDataSet : DataSet 815 { 816 private Order_DetailsDataTable _tableOrder_Details; 817 818 private OrdersDataTable _tableOrders; 819 820 private DataRelation _relationOrdersOrder_x0020_Details; 821 myTypedDataSet()822 public myTypedDataSet() 823 { 824 InitClass(); 825 CollectionChangeEventHandler schemaChangedHandler = new CollectionChangeEventHandler(SchemaChanged); 826 Tables.CollectionChanged += schemaChangedHandler; 827 Relations.CollectionChanged += schemaChangedHandler; 828 } 829 myTypedDataSet(SerializationInfo info, StreamingContext context)830 protected myTypedDataSet(SerializationInfo info, StreamingContext context) 831 { 832 string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); 833 if ((strSchema != null)) 834 { 835 var ds = new DataSet(); 836 ds.ReadXmlSchema(new XmlTextReader(new StringReader(strSchema))); 837 if ((ds.Tables["Order Details"] != null)) 838 { 839 Tables.Add(new Order_DetailsDataTable(ds.Tables["Order Details"])); 840 } 841 if ((ds.Tables["Orders"] != null)) 842 { 843 Tables.Add(new OrdersDataTable(ds.Tables["Orders"])); 844 } 845 DataSetName = ds.DataSetName; 846 Prefix = ds.Prefix; 847 Namespace = ds.Namespace; 848 Locale = ds.Locale; 849 CaseSensitive = ds.CaseSensitive; 850 EnforceConstraints = ds.EnforceConstraints; 851 Merge(ds, false, MissingSchemaAction.Add); 852 InitVars(); 853 } 854 else 855 { 856 InitClass(); 857 } 858 GetSerializationData(info, context); 859 CollectionChangeEventHandler schemaChangedHandler = new CollectionChangeEventHandler(SchemaChanged); 860 Tables.CollectionChanged += schemaChangedHandler; 861 Relations.CollectionChanged += schemaChangedHandler; 862 } 863 864 [Browsable(false)] 865 [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Content)] 866 public Order_DetailsDataTable Order_Details 867 { 868 get 869 { 870 return _tableOrder_Details; 871 } 872 } 873 874 [Browsable(false)] 875 [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Content)] 876 public OrdersDataTable Orders 877 { 878 get 879 { 880 return _tableOrders; 881 } 882 } 883 Clone()884 public override DataSet Clone() 885 { 886 myTypedDataSet cln = ((myTypedDataSet)(base.Clone())); 887 cln.InitVars(); 888 return cln; 889 } 890 ShouldSerializeTables()891 protected override bool ShouldSerializeTables() 892 { 893 return false; 894 } 895 ShouldSerializeRelations()896 protected override bool ShouldSerializeRelations() 897 { 898 return false; 899 } 900 ReadXmlSerializable(XmlReader reader)901 protected override void ReadXmlSerializable(XmlReader reader) 902 { 903 Reset(); 904 var ds = new DataSet(); 905 ds.ReadXml(reader); 906 if ((ds.Tables["Order Details"] != null)) 907 { 908 Tables.Add(new Order_DetailsDataTable(ds.Tables["Order Details"])); 909 } 910 if ((ds.Tables["Orders"] != null)) 911 { 912 Tables.Add(new OrdersDataTable(ds.Tables["Orders"])); 913 } 914 DataSetName = ds.DataSetName; 915 Prefix = ds.Prefix; 916 Namespace = ds.Namespace; 917 Locale = ds.Locale; 918 CaseSensitive = ds.CaseSensitive; 919 EnforceConstraints = ds.EnforceConstraints; 920 Merge(ds, false, MissingSchemaAction.Add); 921 InitVars(); 922 } 923 GetSchemaSerializable()924 protected override XmlSchema GetSchemaSerializable() 925 { 926 MemoryStream stream = new MemoryStream(); 927 WriteXmlSchema(new XmlTextWriter(stream, null)); 928 stream.Position = 0; 929 return XmlSchema.Read(new XmlTextReader(stream), null); 930 } 931 InitVars()932 internal void InitVars() 933 { 934 _tableOrder_Details = ((Order_DetailsDataTable)(Tables["Order Details"])); 935 if ((_tableOrder_Details != null)) 936 { 937 _tableOrder_Details.InitVars(); 938 } 939 _tableOrders = ((OrdersDataTable)(Tables["Orders"])); 940 if ((_tableOrders != null)) 941 { 942 _tableOrders.InitVars(); 943 } 944 _relationOrdersOrder_x0020_Details = Relations["OrdersOrder_x0020_Details"]; 945 } 946 InitClass()947 private void InitClass() 948 { 949 DataSetName = "myTypedDataSet"; 950 Prefix = ""; 951 Namespace = "http://www.tempuri.org/myTypedDataSet.xsd"; 952 Locale = new CultureInfo("en-US"); 953 CaseSensitive = false; 954 EnforceConstraints = true; 955 _tableOrder_Details = new Order_DetailsDataTable(); 956 Tables.Add(_tableOrder_Details); 957 _tableOrders = new OrdersDataTable(); 958 Tables.Add(_tableOrders); 959 ForeignKeyConstraint fkc; 960 fkc = new ForeignKeyConstraint("OrdersOrder_x0020_Details", new DataColumn[] { 961 _tableOrders.OrderIDColumn}, new DataColumn[] { 962 _tableOrder_Details.OrderIDColumn}); 963 _tableOrder_Details.Constraints.Add(fkc); 964 fkc.AcceptRejectRule = AcceptRejectRule.None; 965 fkc.DeleteRule = Rule.Cascade; 966 fkc.UpdateRule = Rule.Cascade; 967 _relationOrdersOrder_x0020_Details = new DataRelation("OrdersOrder_x0020_Details", new DataColumn[] { 968 _tableOrders.OrderIDColumn}, new DataColumn[] { 969 _tableOrder_Details.OrderIDColumn}, false); 970 Relations.Add(_relationOrdersOrder_x0020_Details); 971 } 972 ShouldSerializeOrder_Details()973 private bool ShouldSerializeOrder_Details() 974 { 975 return false; 976 } 977 ShouldSerializeOrders()978 private bool ShouldSerializeOrders() 979 { 980 return false; 981 } 982 SchemaChanged(object sender, CollectionChangeEventArgs e)983 private void SchemaChanged(object sender, CollectionChangeEventArgs e) 984 { 985 if ((e.Action == CollectionChangeAction.Remove)) 986 { 987 InitVars(); 988 } 989 } 990 Order_DetailsRowChangeEventHandler(object sender, Order_DetailsRowChangeEvent e)991 public delegate void Order_DetailsRowChangeEventHandler(object sender, Order_DetailsRowChangeEvent e); 992 OrdersRowChangeEventHandler(object sender, OrdersRowChangeEvent e)993 public delegate void OrdersRowChangeEventHandler(object sender, OrdersRowChangeEvent e); 994 995 public class Order_DetailsDataTable : DataTable, IEnumerable 996 { 997 private DataColumn _columnOrderID; 998 999 private DataColumn _columnProductID; 1000 1001 private DataColumn _columnUnitPrice; 1002 1003 private DataColumn _columnQuantity; 1004 1005 private DataColumn _columnDiscount; 1006 Order_DetailsDataTable()1007 internal Order_DetailsDataTable() : 1008 base("Order Details") 1009 { 1010 InitClass(); 1011 } 1012 Order_DetailsDataTable(DataTable table)1013 internal Order_DetailsDataTable(DataTable table) : 1014 base(table.TableName) 1015 { 1016 if ((table.CaseSensitive != table.DataSet.CaseSensitive)) 1017 { 1018 CaseSensitive = table.CaseSensitive; 1019 } 1020 if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) 1021 { 1022 Locale = table.Locale; 1023 } 1024 if ((table.Namespace != table.DataSet.Namespace)) 1025 { 1026 Namespace = table.Namespace; 1027 } 1028 Prefix = table.Prefix; 1029 MinimumCapacity = table.MinimumCapacity; 1030 DisplayExpression = table.DisplayExpression; 1031 } 1032 1033 [Browsable(false)] 1034 public int Count 1035 { 1036 get 1037 { 1038 return Rows.Count; 1039 } 1040 } 1041 1042 internal DataColumn OrderIDColumn 1043 { 1044 get 1045 { 1046 return _columnOrderID; 1047 } 1048 } 1049 1050 internal DataColumn ProductIDColumn 1051 { 1052 get 1053 { 1054 return _columnProductID; 1055 } 1056 } 1057 1058 internal DataColumn UnitPriceColumn 1059 { 1060 get 1061 { 1062 return _columnUnitPrice; 1063 } 1064 } 1065 1066 internal DataColumn QuantityColumn 1067 { 1068 get 1069 { 1070 return _columnQuantity; 1071 } 1072 } 1073 1074 internal DataColumn DiscountColumn 1075 { 1076 get 1077 { 1078 return _columnDiscount; 1079 } 1080 } 1081 1082 public Order_DetailsRow this[int index] 1083 { 1084 get 1085 { 1086 return ((Order_DetailsRow)(Rows[index])); 1087 } 1088 } 1089 1090 public event Order_DetailsRowChangeEventHandler Order_DetailsRowChanged; 1091 1092 public event Order_DetailsRowChangeEventHandler Order_DetailsRowChanging; 1093 1094 public event Order_DetailsRowChangeEventHandler Order_DetailsRowDeleted; 1095 1096 public event Order_DetailsRowChangeEventHandler Order_DetailsRowDeleting; 1097 AddOrder_DetailsRow(Order_DetailsRow row)1098 public void AddOrder_DetailsRow(Order_DetailsRow row) 1099 { 1100 Rows.Add(row); 1101 } 1102 AddOrder_DetailsRow(OrdersRow parentOrdersRowByOrdersOrder_x0020_Details, int ProductID, decimal UnitPrice, short Quantity, string Discount)1103 public Order_DetailsRow AddOrder_DetailsRow(OrdersRow parentOrdersRowByOrdersOrder_x0020_Details, int ProductID, decimal UnitPrice, short Quantity, string Discount) 1104 { 1105 Order_DetailsRow rowOrder_DetailsRow = ((Order_DetailsRow)(NewRow())); 1106 rowOrder_DetailsRow.ItemArray = new object[] { 1107 parentOrdersRowByOrdersOrder_x0020_Details[0], 1108 ProductID, 1109 UnitPrice, 1110 Quantity, 1111 Discount}; 1112 Rows.Add(rowOrder_DetailsRow); 1113 return rowOrder_DetailsRow; 1114 } 1115 FindByOrderIDProductID(int OrderID, int ProductID)1116 public Order_DetailsRow FindByOrderIDProductID(int OrderID, int ProductID) 1117 { 1118 return ((Order_DetailsRow)(Rows.Find(new object[] { 1119 OrderID, 1120 ProductID}))); 1121 } 1122 GetEnumerator()1123 public IEnumerator GetEnumerator() 1124 { 1125 return Rows.GetEnumerator(); 1126 } 1127 Clone()1128 public override DataTable Clone() 1129 { 1130 Order_DetailsDataTable cln = ((Order_DetailsDataTable)(base.Clone())); 1131 cln.InitVars(); 1132 return cln; 1133 } 1134 CreateInstance()1135 protected override DataTable CreateInstance() 1136 { 1137 return new Order_DetailsDataTable(); 1138 } 1139 InitVars()1140 internal void InitVars() 1141 { 1142 _columnOrderID = Columns["OrderID"]; 1143 _columnProductID = Columns["ProductID"]; 1144 _columnUnitPrice = Columns["UnitPrice"]; 1145 _columnQuantity = Columns["Quantity"]; 1146 _columnDiscount = Columns["Discount"]; 1147 } 1148 InitClass()1149 private void InitClass() 1150 { 1151 _columnOrderID = new DataColumn("OrderID", typeof(int), null, MappingType.Element); 1152 Columns.Add(_columnOrderID); 1153 _columnProductID = new DataColumn("ProductID", typeof(int), null, MappingType.Element); 1154 Columns.Add(_columnProductID); 1155 _columnUnitPrice = new DataColumn("UnitPrice", typeof(decimal), null, MappingType.Element); 1156 Columns.Add(_columnUnitPrice); 1157 _columnQuantity = new DataColumn("Quantity", typeof(short), null, MappingType.Element); 1158 Columns.Add(_columnQuantity); 1159 _columnDiscount = new DataColumn("Discount", typeof(string), null, MappingType.Element); 1160 Columns.Add(_columnDiscount); 1161 Constraints.Add(new UniqueConstraint("Constraint1", new DataColumn[] { 1162 _columnOrderID, 1163 _columnProductID}, true)); 1164 _columnOrderID.AllowDBNull = false; 1165 _columnProductID.AllowDBNull = false; 1166 _columnUnitPrice.AllowDBNull = false; 1167 _columnQuantity.AllowDBNull = false; 1168 _columnDiscount.ReadOnly = true; 1169 } 1170 NewOrder_DetailsRow()1171 public Order_DetailsRow NewOrder_DetailsRow() 1172 { 1173 return ((Order_DetailsRow)(NewRow())); 1174 } 1175 NewRowFromBuilder(DataRowBuilder builder)1176 protected override DataRow NewRowFromBuilder(DataRowBuilder builder) 1177 { 1178 return new Order_DetailsRow(builder); 1179 } 1180 GetRowType()1181 protected override Type GetRowType() 1182 { 1183 return typeof(Order_DetailsRow); 1184 } 1185 OnRowChanged(DataRowChangeEventArgs e)1186 protected override void OnRowChanged(DataRowChangeEventArgs e) 1187 { 1188 base.OnRowChanged(e); 1189 if ((Order_DetailsRowChanged != null)) 1190 { 1191 Order_DetailsRowChanged(this, new Order_DetailsRowChangeEvent(((Order_DetailsRow)(e.Row)), e.Action)); 1192 } 1193 } 1194 OnRowChanging(DataRowChangeEventArgs e)1195 protected override void OnRowChanging(DataRowChangeEventArgs e) 1196 { 1197 base.OnRowChanging(e); 1198 if ((Order_DetailsRowChanging != null)) 1199 { 1200 Order_DetailsRowChanging(this, new Order_DetailsRowChangeEvent(((Order_DetailsRow)(e.Row)), e.Action)); 1201 } 1202 } 1203 OnRowDeleted(DataRowChangeEventArgs e)1204 protected override void OnRowDeleted(DataRowChangeEventArgs e) 1205 { 1206 base.OnRowDeleted(e); 1207 if ((Order_DetailsRowDeleted != null)) 1208 { 1209 Order_DetailsRowDeleted(this, new Order_DetailsRowChangeEvent(((Order_DetailsRow)(e.Row)), e.Action)); 1210 } 1211 } 1212 OnRowDeleting(DataRowChangeEventArgs e)1213 protected override void OnRowDeleting(DataRowChangeEventArgs e) 1214 { 1215 base.OnRowDeleting(e); 1216 if ((Order_DetailsRowDeleting != null)) 1217 { 1218 Order_DetailsRowDeleting(this, new Order_DetailsRowChangeEvent(((Order_DetailsRow)(e.Row)), e.Action)); 1219 } 1220 } 1221 RemoveOrder_DetailsRow(Order_DetailsRow row)1222 public void RemoveOrder_DetailsRow(Order_DetailsRow row) 1223 { 1224 Rows.Remove(row); 1225 } 1226 } 1227 1228 public class Order_DetailsRow : DataRow 1229 { 1230 private Order_DetailsDataTable _tableOrder_Details; 1231 Order_DetailsRow(DataRowBuilder rb)1232 internal Order_DetailsRow(DataRowBuilder rb) : 1233 base(rb) 1234 { 1235 _tableOrder_Details = ((Order_DetailsDataTable)(Table)); 1236 } 1237 1238 public int OrderID 1239 { 1240 get 1241 { 1242 return ((int)(this[_tableOrder_Details.OrderIDColumn])); 1243 } 1244 set 1245 { 1246 this[_tableOrder_Details.OrderIDColumn] = value; 1247 } 1248 } 1249 1250 public int ProductID 1251 { 1252 get 1253 { 1254 return ((int)(this[_tableOrder_Details.ProductIDColumn])); 1255 } 1256 set 1257 { 1258 this[_tableOrder_Details.ProductIDColumn] = value; 1259 } 1260 } 1261 1262 public decimal UnitPrice 1263 { 1264 get 1265 { 1266 return ((decimal)(this[_tableOrder_Details.UnitPriceColumn])); 1267 } 1268 set 1269 { 1270 this[_tableOrder_Details.UnitPriceColumn] = value; 1271 } 1272 } 1273 1274 public short Quantity 1275 { 1276 get 1277 { 1278 return ((short)(this[_tableOrder_Details.QuantityColumn])); 1279 } 1280 set 1281 { 1282 this[_tableOrder_Details.QuantityColumn] = value; 1283 } 1284 } 1285 1286 public string Discount 1287 { 1288 get 1289 { 1290 try 1291 { 1292 return ((string)(this[_tableOrder_Details.DiscountColumn])); 1293 } 1294 catch (InvalidCastException e) 1295 { 1296 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1297 } 1298 } 1299 set 1300 { 1301 this[_tableOrder_Details.DiscountColumn] = value; 1302 } 1303 } 1304 1305 public OrdersRow OrdersRow 1306 { 1307 get 1308 { 1309 return ((OrdersRow)(GetParentRow(Table.ParentRelations["OrdersOrder_x0020_Details"]))); 1310 } 1311 set 1312 { 1313 SetParentRow(value, Table.ParentRelations["OrdersOrder_x0020_Details"]); 1314 } 1315 } 1316 IsDiscountNull()1317 public bool IsDiscountNull() 1318 { 1319 return IsNull(_tableOrder_Details.DiscountColumn); 1320 } 1321 SetDiscountNull()1322 public void SetDiscountNull() 1323 { 1324 this[_tableOrder_Details.DiscountColumn] = DBNull.Value; 1325 } 1326 } 1327 1328 public class Order_DetailsRowChangeEvent : EventArgs 1329 { 1330 private Order_DetailsRow _eventRow; 1331 1332 private DataRowAction _eventAction; 1333 Order_DetailsRowChangeEvent(Order_DetailsRow row, DataRowAction action)1334 public Order_DetailsRowChangeEvent(Order_DetailsRow row, DataRowAction action) 1335 { 1336 _eventRow = row; 1337 _eventAction = action; 1338 } 1339 1340 public Order_DetailsRow Row 1341 { 1342 get 1343 { 1344 return _eventRow; 1345 } 1346 } 1347 1348 public DataRowAction Action 1349 { 1350 get 1351 { 1352 return _eventAction; 1353 } 1354 } 1355 } 1356 1357 public class OrdersDataTable : DataTable, IEnumerable 1358 { 1359 private DataColumn _columnOrderID; 1360 1361 private DataColumn _columnCustomerID; 1362 1363 private DataColumn _columnEmployeeID; 1364 1365 private DataColumn _columnOrderDate; 1366 1367 private DataColumn _columnRequiredDate; 1368 1369 private DataColumn _columnShippedDate; 1370 1371 private DataColumn _columnShipVia; 1372 1373 private DataColumn _columnFreight; 1374 1375 private DataColumn _columnShipName; 1376 1377 private DataColumn _columnShipAddress; 1378 1379 private DataColumn _columnShipCity; 1380 1381 private DataColumn _columnShipRegion; 1382 1383 private DataColumn _columnShipPostalCode; 1384 1385 private DataColumn _columnShipCountry; 1386 OrdersDataTable()1387 internal OrdersDataTable() : 1388 base("Orders") 1389 { 1390 InitClass(); 1391 } 1392 OrdersDataTable(DataTable table)1393 internal OrdersDataTable(DataTable table) : 1394 base(table.TableName) 1395 { 1396 if ((table.CaseSensitive != table.DataSet.CaseSensitive)) 1397 { 1398 CaseSensitive = table.CaseSensitive; 1399 } 1400 if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) 1401 { 1402 Locale = table.Locale; 1403 } 1404 if ((table.Namespace != table.DataSet.Namespace)) 1405 { 1406 Namespace = table.Namespace; 1407 } 1408 Prefix = table.Prefix; 1409 MinimumCapacity = table.MinimumCapacity; 1410 DisplayExpression = table.DisplayExpression; 1411 } 1412 1413 [Browsable(false)] 1414 public int Count 1415 { 1416 get 1417 { 1418 return Rows.Count; 1419 } 1420 } 1421 1422 internal DataColumn OrderIDColumn 1423 { 1424 get 1425 { 1426 return _columnOrderID; 1427 } 1428 } 1429 1430 internal DataColumn CustomerIDColumn 1431 { 1432 get 1433 { 1434 return _columnCustomerID; 1435 } 1436 } 1437 1438 internal DataColumn EmployeeIDColumn 1439 { 1440 get 1441 { 1442 return _columnEmployeeID; 1443 } 1444 } 1445 1446 internal DataColumn OrderDateColumn 1447 { 1448 get 1449 { 1450 return _columnOrderDate; 1451 } 1452 } 1453 1454 internal DataColumn RequiredDateColumn 1455 { 1456 get 1457 { 1458 return _columnRequiredDate; 1459 } 1460 } 1461 1462 internal DataColumn ShippedDateColumn 1463 { 1464 get 1465 { 1466 return _columnShippedDate; 1467 } 1468 } 1469 1470 internal DataColumn ShipViaColumn 1471 { 1472 get 1473 { 1474 return _columnShipVia; 1475 } 1476 } 1477 1478 internal DataColumn FreightColumn 1479 { 1480 get 1481 { 1482 return _columnFreight; 1483 } 1484 } 1485 1486 internal DataColumn ShipNameColumn 1487 { 1488 get 1489 { 1490 return _columnShipName; 1491 } 1492 } 1493 1494 internal DataColumn ShipAddressColumn 1495 { 1496 get 1497 { 1498 return _columnShipAddress; 1499 } 1500 } 1501 1502 internal DataColumn ShipCityColumn 1503 { 1504 get 1505 { 1506 return _columnShipCity; 1507 } 1508 } 1509 1510 internal DataColumn ShipRegionColumn 1511 { 1512 get 1513 { 1514 return _columnShipRegion; 1515 } 1516 } 1517 1518 internal DataColumn ShipPostalCodeColumn 1519 { 1520 get 1521 { 1522 return _columnShipPostalCode; 1523 } 1524 } 1525 1526 internal DataColumn ShipCountryColumn 1527 { 1528 get 1529 { 1530 return _columnShipCountry; 1531 } 1532 } 1533 1534 public OrdersRow this[int index] 1535 { 1536 get 1537 { 1538 return ((OrdersRow)(Rows[index])); 1539 } 1540 } 1541 1542 public event OrdersRowChangeEventHandler OrdersRowChanged; 1543 1544 public event OrdersRowChangeEventHandler OrdersRowChanging; 1545 1546 public event OrdersRowChangeEventHandler OrdersRowDeleted; 1547 1548 public event OrdersRowChangeEventHandler OrdersRowDeleting; 1549 AddOrdersRow(OrdersRow row)1550 public void AddOrdersRow(OrdersRow row) 1551 { 1552 Rows.Add(row); 1553 } 1554 AddOrdersRow(string CustomerID, int EmployeeID, DateTime OrderDate, DateTime RequiredDate, DateTime ShippedDate, int ShipVia, decimal Freight, string ShipName, string ShipAddress, string ShipCity, string ShipRegion, string ShipPostalCode, string ShipCountry)1555 public OrdersRow AddOrdersRow(string CustomerID, int EmployeeID, DateTime OrderDate, DateTime RequiredDate, DateTime ShippedDate, int ShipVia, decimal Freight, string ShipName, string ShipAddress, string ShipCity, string ShipRegion, string ShipPostalCode, string ShipCountry) 1556 { 1557 OrdersRow rowOrdersRow = ((OrdersRow)(NewRow())); 1558 rowOrdersRow.ItemArray = new object[] { 1559 null, 1560 CustomerID, 1561 EmployeeID, 1562 OrderDate, 1563 RequiredDate, 1564 ShippedDate, 1565 ShipVia, 1566 Freight, 1567 ShipName, 1568 ShipAddress, 1569 ShipCity, 1570 ShipRegion, 1571 ShipPostalCode, 1572 ShipCountry}; 1573 Rows.Add(rowOrdersRow); 1574 return rowOrdersRow; 1575 } 1576 FindByOrderID(int OrderID)1577 public OrdersRow FindByOrderID(int OrderID) 1578 { 1579 return ((OrdersRow)(Rows.Find(new object[] { 1580 OrderID}))); 1581 } 1582 GetEnumerator()1583 public IEnumerator GetEnumerator() 1584 { 1585 return Rows.GetEnumerator(); 1586 } 1587 Clone()1588 public override DataTable Clone() 1589 { 1590 OrdersDataTable cln = ((OrdersDataTable)(base.Clone())); 1591 cln.InitVars(); 1592 return cln; 1593 } 1594 CreateInstance()1595 protected override DataTable CreateInstance() 1596 { 1597 return new OrdersDataTable(); 1598 } 1599 InitVars()1600 internal void InitVars() 1601 { 1602 _columnOrderID = Columns["OrderID"]; 1603 _columnCustomerID = Columns["CustomerID"]; 1604 _columnEmployeeID = Columns["EmployeeID"]; 1605 _columnOrderDate = Columns["OrderDate"]; 1606 _columnRequiredDate = Columns["RequiredDate"]; 1607 _columnShippedDate = Columns["ShippedDate"]; 1608 _columnShipVia = Columns["ShipVia"]; 1609 _columnFreight = Columns["Freight"]; 1610 _columnShipName = Columns["ShipName"]; 1611 _columnShipAddress = Columns["ShipAddress"]; 1612 _columnShipCity = Columns["ShipCity"]; 1613 _columnShipRegion = Columns["ShipRegion"]; 1614 _columnShipPostalCode = Columns["ShipPostalCode"]; 1615 _columnShipCountry = Columns["ShipCountry"]; 1616 } 1617 InitClass()1618 private void InitClass() 1619 { 1620 _columnOrderID = new DataColumn("OrderID", typeof(int), null, MappingType.Element); 1621 Columns.Add(_columnOrderID); 1622 _columnCustomerID = new DataColumn("CustomerID", typeof(string), null, MappingType.Element); 1623 Columns.Add(_columnCustomerID); 1624 _columnEmployeeID = new DataColumn("EmployeeID", typeof(int), null, MappingType.Element); 1625 Columns.Add(_columnEmployeeID); 1626 _columnOrderDate = new DataColumn("OrderDate", typeof(DateTime), null, MappingType.Element); 1627 Columns.Add(_columnOrderDate); 1628 _columnRequiredDate = new DataColumn("RequiredDate", typeof(DateTime), null, MappingType.Element); 1629 Columns.Add(_columnRequiredDate); 1630 _columnShippedDate = new DataColumn("ShippedDate", typeof(DateTime), null, MappingType.Element); 1631 Columns.Add(_columnShippedDate); 1632 _columnShipVia = new DataColumn("ShipVia", typeof(int), null, MappingType.Element); 1633 Columns.Add(_columnShipVia); 1634 _columnFreight = new DataColumn("Freight", typeof(decimal), null, MappingType.Element); 1635 Columns.Add(_columnFreight); 1636 _columnShipName = new DataColumn("ShipName", typeof(string), null, MappingType.Element); 1637 Columns.Add(_columnShipName); 1638 _columnShipAddress = new DataColumn("ShipAddress", typeof(string), null, MappingType.Element); 1639 Columns.Add(_columnShipAddress); 1640 _columnShipCity = new DataColumn("ShipCity", typeof(string), null, MappingType.Element); 1641 Columns.Add(_columnShipCity); 1642 _columnShipRegion = new DataColumn("ShipRegion", typeof(string), null, MappingType.Element); 1643 Columns.Add(_columnShipRegion); 1644 _columnShipPostalCode = new DataColumn("ShipPostalCode", typeof(string), null, MappingType.Element); 1645 Columns.Add(_columnShipPostalCode); 1646 _columnShipCountry = new DataColumn("ShipCountry", typeof(string), null, MappingType.Element); 1647 Columns.Add(_columnShipCountry); 1648 Constraints.Add(new UniqueConstraint("Constraint1", new DataColumn[] { 1649 _columnOrderID}, true)); 1650 _columnOrderID.AutoIncrement = true; 1651 _columnOrderID.AllowDBNull = false; 1652 _columnOrderID.ReadOnly = true; 1653 _columnOrderID.Unique = true; 1654 } 1655 NewOrdersRow()1656 public OrdersRow NewOrdersRow() 1657 { 1658 return ((OrdersRow)(NewRow())); 1659 } 1660 NewRowFromBuilder(DataRowBuilder builder)1661 protected override DataRow NewRowFromBuilder(DataRowBuilder builder) 1662 { 1663 return new OrdersRow(builder); 1664 } 1665 GetRowType()1666 protected override Type GetRowType() 1667 { 1668 return typeof(OrdersRow); 1669 } 1670 OnRowChanged(DataRowChangeEventArgs e)1671 protected override void OnRowChanged(DataRowChangeEventArgs e) 1672 { 1673 base.OnRowChanged(e); 1674 if ((OrdersRowChanged != null)) 1675 { 1676 OrdersRowChanged(this, new OrdersRowChangeEvent(((OrdersRow)(e.Row)), e.Action)); 1677 } 1678 } 1679 OnRowChanging(DataRowChangeEventArgs e)1680 protected override void OnRowChanging(DataRowChangeEventArgs e) 1681 { 1682 base.OnRowChanging(e); 1683 if ((OrdersRowChanging != null)) 1684 { 1685 OrdersRowChanging(this, new OrdersRowChangeEvent(((OrdersRow)(e.Row)), e.Action)); 1686 } 1687 } 1688 OnRowDeleted(DataRowChangeEventArgs e)1689 protected override void OnRowDeleted(DataRowChangeEventArgs e) 1690 { 1691 base.OnRowDeleted(e); 1692 if ((OrdersRowDeleted != null)) 1693 { 1694 OrdersRowDeleted(this, new OrdersRowChangeEvent(((OrdersRow)(e.Row)), e.Action)); 1695 } 1696 } 1697 OnRowDeleting(DataRowChangeEventArgs e)1698 protected override void OnRowDeleting(DataRowChangeEventArgs e) 1699 { 1700 base.OnRowDeleting(e); 1701 if ((OrdersRowDeleting != null)) 1702 { 1703 OrdersRowDeleting(this, new OrdersRowChangeEvent(((OrdersRow)(e.Row)), e.Action)); 1704 } 1705 } 1706 RemoveOrdersRow(OrdersRow row)1707 public void RemoveOrdersRow(OrdersRow row) 1708 { 1709 Rows.Remove(row); 1710 } 1711 } 1712 1713 public class OrdersRow : DataRow 1714 { 1715 private OrdersDataTable _tableOrders; 1716 OrdersRow(DataRowBuilder rb)1717 internal OrdersRow(DataRowBuilder rb) : 1718 base(rb) 1719 { 1720 _tableOrders = ((OrdersDataTable)(Table)); 1721 } 1722 1723 public int OrderID 1724 { 1725 get 1726 { 1727 return ((int)(this[_tableOrders.OrderIDColumn])); 1728 } 1729 set 1730 { 1731 this[_tableOrders.OrderIDColumn] = value; 1732 } 1733 } 1734 1735 public string CustomerID 1736 { 1737 get 1738 { 1739 try 1740 { 1741 return ((string)(this[_tableOrders.CustomerIDColumn])); 1742 } 1743 catch (InvalidCastException e) 1744 { 1745 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1746 } 1747 } 1748 set 1749 { 1750 this[_tableOrders.CustomerIDColumn] = value; 1751 } 1752 } 1753 1754 public int EmployeeID 1755 { 1756 get 1757 { 1758 try 1759 { 1760 return ((int)(this[_tableOrders.EmployeeIDColumn])); 1761 } 1762 catch (InvalidCastException e) 1763 { 1764 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1765 } 1766 } 1767 set 1768 { 1769 this[_tableOrders.EmployeeIDColumn] = value; 1770 } 1771 } 1772 1773 public DateTime OrderDate 1774 { 1775 get 1776 { 1777 try 1778 { 1779 return ((DateTime)(this[_tableOrders.OrderDateColumn])); 1780 } 1781 catch (InvalidCastException e) 1782 { 1783 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1784 } 1785 } 1786 set 1787 { 1788 this[_tableOrders.OrderDateColumn] = value; 1789 } 1790 } 1791 1792 public DateTime RequiredDate 1793 { 1794 get 1795 { 1796 try 1797 { 1798 return ((DateTime)(this[_tableOrders.RequiredDateColumn])); 1799 } 1800 catch (InvalidCastException e) 1801 { 1802 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1803 } 1804 } 1805 set 1806 { 1807 this[_tableOrders.RequiredDateColumn] = value; 1808 } 1809 } 1810 1811 public DateTime ShippedDate 1812 { 1813 get 1814 { 1815 try 1816 { 1817 return ((DateTime)(this[_tableOrders.ShippedDateColumn])); 1818 } 1819 catch (InvalidCastException e) 1820 { 1821 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1822 } 1823 } 1824 set 1825 { 1826 this[_tableOrders.ShippedDateColumn] = value; 1827 } 1828 } 1829 1830 public int ShipVia 1831 { 1832 get 1833 { 1834 try 1835 { 1836 return ((int)(this[_tableOrders.ShipViaColumn])); 1837 } 1838 catch (InvalidCastException e) 1839 { 1840 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1841 } 1842 } 1843 set 1844 { 1845 this[_tableOrders.ShipViaColumn] = value; 1846 } 1847 } 1848 1849 public decimal Freight 1850 { 1851 get 1852 { 1853 try 1854 { 1855 return ((decimal)(this[_tableOrders.FreightColumn])); 1856 } 1857 catch (InvalidCastException e) 1858 { 1859 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1860 } 1861 } 1862 set 1863 { 1864 this[_tableOrders.FreightColumn] = value; 1865 } 1866 } 1867 1868 public string ShipName 1869 { 1870 get 1871 { 1872 try 1873 { 1874 return ((string)(this[_tableOrders.ShipNameColumn])); 1875 } 1876 catch (InvalidCastException e) 1877 { 1878 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1879 } 1880 } 1881 set 1882 { 1883 this[_tableOrders.ShipNameColumn] = value; 1884 } 1885 } 1886 1887 public string ShipAddress 1888 { 1889 get 1890 { 1891 try 1892 { 1893 return ((string)(this[_tableOrders.ShipAddressColumn])); 1894 } 1895 catch (InvalidCastException e) 1896 { 1897 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1898 } 1899 } 1900 set 1901 { 1902 this[_tableOrders.ShipAddressColumn] = value; 1903 } 1904 } 1905 1906 public string ShipCity 1907 { 1908 get 1909 { 1910 try 1911 { 1912 return ((string)(this[_tableOrders.ShipCityColumn])); 1913 } 1914 catch (InvalidCastException e) 1915 { 1916 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1917 } 1918 } 1919 set 1920 { 1921 this[_tableOrders.ShipCityColumn] = value; 1922 } 1923 } 1924 1925 public string ShipRegion 1926 { 1927 get 1928 { 1929 try 1930 { 1931 return ((string)(this[_tableOrders.ShipRegionColumn])); 1932 } 1933 catch (InvalidCastException e) 1934 { 1935 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1936 } 1937 } 1938 set 1939 { 1940 this[_tableOrders.ShipRegionColumn] = value; 1941 } 1942 } 1943 1944 public string ShipPostalCode 1945 { 1946 get 1947 { 1948 try 1949 { 1950 return ((string)(this[_tableOrders.ShipPostalCodeColumn])); 1951 } 1952 catch (InvalidCastException e) 1953 { 1954 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1955 } 1956 } 1957 set 1958 { 1959 this[_tableOrders.ShipPostalCodeColumn] = value; 1960 } 1961 } 1962 1963 public string ShipCountry 1964 { 1965 get 1966 { 1967 try 1968 { 1969 return ((string)(this[_tableOrders.ShipCountryColumn])); 1970 } 1971 catch (InvalidCastException e) 1972 { 1973 throw new StrongTypingException("Cannot get value because it is DBNull.", e); 1974 } 1975 } 1976 set 1977 { 1978 this[_tableOrders.ShipCountryColumn] = value; 1979 } 1980 } 1981 IsCustomerIDNull()1982 public bool IsCustomerIDNull() 1983 { 1984 return IsNull(_tableOrders.CustomerIDColumn); 1985 } 1986 SetCustomerIDNull()1987 public void SetCustomerIDNull() 1988 { 1989 this[_tableOrders.CustomerIDColumn] = DBNull.Value; 1990 } 1991 IsEmployeeIDNull()1992 public bool IsEmployeeIDNull() 1993 { 1994 return IsNull(_tableOrders.EmployeeIDColumn); 1995 } 1996 SetEmployeeIDNull()1997 public void SetEmployeeIDNull() 1998 { 1999 this[_tableOrders.EmployeeIDColumn] = DBNull.Value; 2000 } 2001 IsOrderDateNull()2002 public bool IsOrderDateNull() 2003 { 2004 return IsNull(_tableOrders.OrderDateColumn); 2005 } 2006 SetOrderDateNull()2007 public void SetOrderDateNull() 2008 { 2009 this[_tableOrders.OrderDateColumn] = DBNull.Value; 2010 } 2011 IsRequiredDateNull()2012 public bool IsRequiredDateNull() 2013 { 2014 return IsNull(_tableOrders.RequiredDateColumn); 2015 } 2016 SetRequiredDateNull()2017 public void SetRequiredDateNull() 2018 { 2019 this[_tableOrders.RequiredDateColumn] = DBNull.Value; 2020 } 2021 IsShippedDateNull()2022 public bool IsShippedDateNull() 2023 { 2024 return IsNull(_tableOrders.ShippedDateColumn); 2025 } 2026 SetShippedDateNull()2027 public void SetShippedDateNull() 2028 { 2029 this[_tableOrders.ShippedDateColumn] = DBNull.Value; 2030 } 2031 IsShipViaNull()2032 public bool IsShipViaNull() 2033 { 2034 return IsNull(_tableOrders.ShipViaColumn); 2035 } 2036 SetShipViaNull()2037 public void SetShipViaNull() 2038 { 2039 this[_tableOrders.ShipViaColumn] = DBNull.Value; 2040 } 2041 IsFreightNull()2042 public bool IsFreightNull() 2043 { 2044 return IsNull(_tableOrders.FreightColumn); 2045 } 2046 SetFreightNull()2047 public void SetFreightNull() 2048 { 2049 this[_tableOrders.FreightColumn] = DBNull.Value; 2050 } 2051 IsShipNameNull()2052 public bool IsShipNameNull() 2053 { 2054 return IsNull(_tableOrders.ShipNameColumn); 2055 } 2056 SetShipNameNull()2057 public void SetShipNameNull() 2058 { 2059 this[_tableOrders.ShipNameColumn] = DBNull.Value; 2060 } 2061 IsShipAddressNull()2062 public bool IsShipAddressNull() 2063 { 2064 return IsNull(_tableOrders.ShipAddressColumn); 2065 } 2066 SetShipAddressNull()2067 public void SetShipAddressNull() 2068 { 2069 this[_tableOrders.ShipAddressColumn] = DBNull.Value; 2070 } 2071 IsShipCityNull()2072 public bool IsShipCityNull() 2073 { 2074 return IsNull(_tableOrders.ShipCityColumn); 2075 } 2076 SetShipCityNull()2077 public void SetShipCityNull() 2078 { 2079 this[_tableOrders.ShipCityColumn] = DBNull.Value; 2080 } 2081 IsShipRegionNull()2082 public bool IsShipRegionNull() 2083 { 2084 return IsNull(_tableOrders.ShipRegionColumn); 2085 } 2086 SetShipRegionNull()2087 public void SetShipRegionNull() 2088 { 2089 this[_tableOrders.ShipRegionColumn] = DBNull.Value; 2090 } 2091 IsShipPostalCodeNull()2092 public bool IsShipPostalCodeNull() 2093 { 2094 return IsNull(_tableOrders.ShipPostalCodeColumn); 2095 } 2096 SetShipPostalCodeNull()2097 public void SetShipPostalCodeNull() 2098 { 2099 this[_tableOrders.ShipPostalCodeColumn] = DBNull.Value; 2100 } 2101 IsShipCountryNull()2102 public bool IsShipCountryNull() 2103 { 2104 return IsNull(_tableOrders.ShipCountryColumn); 2105 } 2106 SetShipCountryNull()2107 public void SetShipCountryNull() 2108 { 2109 this[_tableOrders.ShipCountryColumn] = DBNull.Value; 2110 } 2111 GetOrder_DetailsRows()2112 public Order_DetailsRow[] GetOrder_DetailsRows() 2113 { 2114 return ((Order_DetailsRow[])(GetChildRows(Table.ChildRelations["OrdersOrder_x0020_Details"]))); 2115 } 2116 } 2117 2118 public class OrdersRowChangeEvent : EventArgs 2119 { 2120 private OrdersRow _eventRow; 2121 2122 private DataRowAction _eventAction; 2123 OrdersRowChangeEvent(OrdersRow row, DataRowAction action)2124 public OrdersRowChangeEvent(OrdersRow row, DataRowAction action) 2125 { 2126 _eventRow = row; 2127 _eventAction = action; 2128 } 2129 2130 public OrdersRow Row 2131 { 2132 get 2133 { 2134 return _eventRow; 2135 } 2136 } 2137 2138 public DataRowAction Action 2139 { 2140 get 2141 { 2142 return _eventAction; 2143 } 2144 } 2145 } 2146 } 2147 } 2148 } 2149