Maison base de données tutoriel mysql DataTable的事件响应

DataTable的事件响应

Jun 07, 2016 pm 03:07 PM
datatable 事件 同步 响应 ce 问题

这个问题是由要同步两个数据库而引发的,我的想法是,对于两个同样内容的数据库(保存在Access和SqlServer中),使得在程序中修改一个表的时候对两个数据库的表同时更新。 当然,更新的工作交给Adapter,主要的技术是让从两数据库读取的Datatable修改同步起

这个问题是由要同步两个数据库而引发的,我的想法是,对于两个同样内容的数据库(保存在Access和SqlServer中),使得在程序中修改一个表的时候对两个数据库的表同时更新。
当然,更新的工作交给Adapter,主要的技术是让从两数据库读取的Datatable修改同步起来。
这里就要用到DataTable的事件响应,我用到的有:
增:DataTable.TableNewRow ; DataTable.RowChanged ;
删:DataTable.RowDeleting ; DataTable.RowDeleted ;
改:DataTable.ColumnChanged
下面以 表 T1 T2 为例说明这些事件如何被触发,以及触发时怎样处理。
增:
新建一个数据行,我们一般使用 T1.Rows.Add() 方法,这个方法将触发 T1.RowChanged 事件,说明一个新的行已经被加到 T1 中,索引也随之更新,但是这个过程无法让用户编辑这个行(一次写入);而为了让用户在添加新行之前进行编辑(以避免无法自定义验证的情况),需要在调用 T1.Rows.Add() 方法前声明一个DataRow 变量来保存新行的数据。
为简便计且让 DataTable 自行检查输入的合法性,在新行上使用 DataRow R1 = T1.NewRow();
这样实例化的 R1 将带有 T1 的 schema 结构。
在调用 T1.NewRow() 方法时,即触发 T1.TableNewRow 事件;值得注意的是,此时这个数据行并没有真正加入到 T1.Rows 集合中,而当对 R1 的各个成员赋值时,将依次触发 DataTable.ColumnChanged 事件,最后调用 T1.Rows.Add( R1 ); ,这时新行的增加就可以在 T1.RowChanged 事件中利用 e.Action 属性捕获到。
如此一来,即有如下处理:
修改命令? 触发的事件? 同步处理
DataRow R1 = T1.NewRow();? T1.TableNewRow? DataRow R2 = T2.NewRow();?
R1[0] = v1;? T1.ColumnChanged? R2[0] = v1;
T1.Rows.Add(R1);? T1.RowChanged? T2.Rows.Add(R2);
删:
由于我们假设两个数据库的内容一致,删除的时候,只需要知道 T1 中的哪一行被删除,即可做出正确的处理。
在删除时,T1.Rows.RemoveAt(0); 和 T1.Rows[0].Delete(); 是等效的,均将依次触发 DataTable.RowDeleting 和 DataTable.RowDeleted 事件
为了得到被删除行原本所在位置的索引,我们需要在其被删除前( DataTable.RowDeleted )捕获,即在 DataTable.RowDeleting 的响应中,通过 T1.Rows.IndexOf(e.Row) 返回得到;而在 DataTable.RowDeleted 的响应中我们将得到 -1 。
如此一来,即有如下处理:
修改命令? 触发的事件? 同步处理
T1.Rows[n].Delete();? DataTable.RowDeleting? int i = T1.Rows.IndexOf(e.Row);
-? DataTable.RowDeleted? T2.Rows[i].Delete();
改:
所谓的更改,即修改 DataTable 中某一元素( cell )的值。若要修改生效,应当使用如下格式的语句
T1.Rows[m][n] = v2 ;
笔者曾试用过 T1.Rows[m].ItemArray[n] = v2;语句,但赋值无效,这是因为 ItemArray 集合只接受从 Array 实例传递的批量值,使用如下语句:
object[] a1 = new object[1] { v3 };
T1.Rows[m].ItemArray = a1;
可以批量更改一行中的数据,这常用在新建行的过程中,不适合单个元素的赋值。
在赋值时,触发 DataTable.ColumnChanged 事件,通上例,可以获得被修改单元的行列索引和修改后的值。
如此一来,即有如下处理:
修改命令? 触发的事件? 同步处理
T1.Rows[m][n] = v2;? DataTable.ColumnChanged? int i = T1.Rows.IndexOf(e.Row);
int j = T1.Rows.IndexOf(e.Column);
T2.Rows[i][j] = e.ProposedValue;
最后,假如我们的 T1 和 T2 都是由 Adapter.Fill() 方法获得,那么这个过程当然将同时被两个 Adapter 记录,再调用 Adapter.Update() 方法就可实现同步更新。
另,这篇文章中没有考虑两数据库初始内容不同的情况。

reload note: http://blog.sina.com.cn/s/blog_4b2950c20100igfe.html
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Résolvez le problème de la lecture simultanée d'écouteurs et de haut-parleurs dans Win11 Résolvez le problème de la lecture simultanée d'écouteurs et de haut-parleurs dans Win11 Jan 06, 2024 am 08:50 AM

De manière générale, nous n'avons besoin d'utiliser qu'un seul casque ou haut-parleur en même temps. Cependant, certains amis ont signalé que dans le système Win11, ils ont rencontré le problème du son des écouteurs et des haut-parleurs en même temps. désactivez-le dans le panneau Realtek et tout ira bien, jetons un œil ci-dessous. Que dois-je faire si mes écouteurs et mes haut-parleurs sonnent ensemble dans Win11 ? 1. Recherchez et ouvrez d'abord le "Panneau de configuration" sur le bureau 2. Accédez au panneau de configuration, recherchez et ouvrez "Matériel et son" 3. Recherchez ensuite le ". Realtek High Definition" avec une icône de haut-parleur. Audio Manager" 4. Sélectionnez "Haut-parleurs" et cliquez sur "Panneau arrière" pour entrer les paramètres des haut-parleurs. 5. Après ouverture, nous pouvons voir le type d'appareil. Si vous souhaitez éteindre les écouteurs, décochez « Écouteurs ».

Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Mar 18, 2024 am 09:46 AM

Lorsque vous constatez qu'un ou plusieurs éléments de votre dossier de synchronisation ne correspondent pas au message d'erreur dans Outlook, cela peut être dû au fait que vous avez mis à jour ou annulé des éléments de réunion. Dans ce cas, vous verrez un message d'erreur indiquant que votre version locale des données est en conflit avec la copie distante. Cette situation se produit généralement dans l'application de bureau Outlook. Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas. Pour résoudre le conflit, ouvrez les projets et retentez l'opération. Réparer Un ou plusieurs éléments dans les dossiers synchronisés ne correspondent pas à l'erreur Outlook Dans la version de bureau d'Outlook, vous pouvez rencontrer des problèmes lorsque des éléments du calendrier local entrent en conflit avec la copie du serveur. Heureusement, il existe des moyens simples d’aider

Apprenez à synchroniser le presse-papiers Win10 avec votre téléphone mobile Apprenez à synchroniser le presse-papiers Win10 avec votre téléphone mobile Jan 06, 2024 am 09:18 AM

Une fonction très utile du presse-papiers Win10 est la fonction de stockage cloud multi-appareils, qui est très utile et peut aider les utilisateurs à copier et coller simultanément sur des appareils PC et des appareils mobiles. La méthode de configuration est très simple, il suffit de la définir dans le presse-papiers du système. Synchroniser le presse-papiers Win10 avec le téléphone mobile 1. Cliquez d'abord sur Démarrer dans le coin inférieur gauche pour entrer les paramètres. 2. Cliquez ensuite sur « Système ». 3. Sélectionnez « Presse-papiers » sur la gauche. 4. Enfin, cliquez sur Connexion dans « Synchronisation multi-appareils » à droite, puis sélectionnez votre téléphone mobile.

Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Feb 19, 2024 pm 02:01 PM

Pour résoudre le problème selon lequel jQuery.val() ne peut pas être utilisé, des exemples de code spécifiques sont requis. Pour les développeurs front-end, l'utilisation de jQuery est l'une des opérations courantes. Parmi eux, utiliser la méthode .val() pour obtenir ou définir la valeur d'un élément de formulaire est une opération très courante. Cependant, dans certains cas précis, le problème de ne pas pouvoir utiliser la méthode .val() peut se poser. Cet article présentera quelques situations et solutions courantes, et fournira des exemples de code spécifiques. Description du problème Lorsque vous utilisez jQuery pour développer des pages frontales, vous rencontrerez parfois

Comment implémenter la liaison d'événement de changement d'éléments sélectionnés dans jQuery Comment implémenter la liaison d'événement de changement d'éléments sélectionnés dans jQuery Feb 23, 2024 pm 01:12 PM

jQuery est une bibliothèque JavaScript populaire qui peut être utilisée pour simplifier la manipulation du DOM, la gestion des événements, les effets d'animation, etc. Dans le développement Web, nous rencontrons souvent des situations dans lesquelles nous devons modifier la liaison d'événements sur des éléments sélectionnés. Cet article explique comment utiliser jQuery pour lier des événements de modification d'éléments sélectionnés et fournit des exemples de code spécifiques. Tout d'abord, nous devons créer un menu déroulant avec des options utilisant des étiquettes :

Comment synchroniser le disque de synchronisation cloud Baidu Comment synchroniser le disque de synchronisation cloud Baidu Feb 23, 2024 pm 01:22 PM

Comment synchroniser Baidu Cloud Sync Disk ? Vous pouvez sélectionner les fichiers à synchroniser dans Baidu Cloud Sync Disk, mais la plupart des utilisateurs ne savent pas comment synchroniser les fichiers Baidu Cloud. Voici ensuite le didacticiel graphique de la méthode de synchronisation Baidu Cloud Sync Disk proposé par l'éditeur. pour les utilisateurs intéressés, venez jeter un oeil ! Comment synchroniser Baidu Cloud Sync Disk 1. Entrez d'abord sur le bureau de l'ordinateur, cliquez avec le bouton droit sur l'icône [Baidu Cloud Sync Disk] et sélectionnez [Paramètres] 2. Développez ensuite la fenêtre du service, passez à la page [Paramètres avancés] et cliquez sur ; [Sélectionner un dossier] ; 3. Enfin, passez à la page comme indiqué ci-dessous, vérifiez les fichiers qui doivent être synchronisés et cliquez sur [OK].

Comment résoudre le problème du menu Démarrer qui ne peut pas être utilisé après l'installation de Win11 Comment résoudre le problème du menu Démarrer qui ne peut pas être utilisé après l'installation de Win11 Jan 06, 2024 pm 05:14 PM

De nombreux utilisateurs ont essayé de mettre à jour le système Win11, mais ont constaté que le menu Démarrer ne peut pas être utilisé après la mise à jour. Cela peut être dû à un problème avec la dernière mise à jour. Nous pouvons attendre que Microsoft corrige ou désinstalle ces mises à jour pour résoudre le problème. problème. Examinons-le ensemble. Que faire si le menu Démarrer ne peut pas être utilisé après l'installation de Win11. Méthode 1 : 1. Ouvrez d'abord le panneau de configuration dans Win11. 2. Cliquez ensuite sur le bouton "Désinstaller un programme" sous le programme. 3. Entrez dans l'interface de désinstallation et recherchez « Afficher les mises à jour installées » dans le coin supérieur gauche. 4. Après avoir entré, vous pouvez afficher l'heure de mise à jour dans les informations de mise à jour et désinstaller toutes les mises à jour récentes. Méthode 2 : 1. De plus, nous pouvons également télécharger directement le système win11 sans mises à jour. 2. C'est un produit sans le plus

Quelles sont les questions de l'examen Rulong 8 Wine Master ? Quelles sont les questions de l'examen Rulong 8 Wine Master ? Feb 02, 2024 am 10:18 AM

Quelles sont les questions impliquées dans l’examen Yulong 8 Wine Master ? Quelle est la réponse correspondante ? Comment réussir l’examen rapidement ? De nombreuses questions doivent trouver une réponse dans les activités de l'examen Master of Wine, et nous pouvons nous référer aux réponses pour les résoudre. Ces questions impliquent toutes la connaissance du vin. Si vous avez besoin d’une référence, jetons un œil à l’analyse détaillée des réponses aux questions de l’examen Yakuza 8 Wine Master ! Explication détaillée des réponses aux questions de l'examen Rulong 8 Wine Master 1. Questions sur le « vin ». Il s'agit d'une liqueur distillée produite par une distillerie créée par la famille royale. Elle est brassée à partir du sucre de canne à sucre cultivé en grande quantité à Hawaï. Quel est le nom de ce vin ? Réponse : Rhum 2. Question sur le « vin ». La photo montre une boisson à base de ginseng sec et de vermouth sec. Il se caractérise par l'ajout d'olives et est connu sous le nom de « cockney ».

See all articles