.net用OLEDB方式操作SqlServer和Sybase
【错误一】 SqlServer提示错误:OleDbException 必须声明标量变量 今天用.net使用Oledb的方式操作SqlServer,却总是莫名其妙的报“必须声明标量变量…”,在代码里面分别采用了下面的两种方式,都无济于事: 方法一: OleDbParameter [] p = new OleDbParamete
【错误一】 SqlServer提示错误:OleDbException 必须声明标量变量
今天用.net使用Oledb的方式操作SqlServer,却总是莫名其妙的报“必须声明标量变量…”,在代码里面分别采用了下面的两种方式,都无济于事:
<span>方法一:</span>
<span>OleDbParameter</span>[] <span>p </span>= <span>new </span><span>OleDbParameter</span>[] { <span>new </span><span>OleDbParameter</span>(<span>"@aa"</span>,1), <span>new </span><span>OleDbParameter</span>(<span>"@bb"</span>,<span>"shelley"</span>), <span>new </span><span>OleDbParameter</span>(<span>"@cc"</span>,<span>DateTime</span>.<span>Now</span>)};<span>Objcmd</span>.<span>Parameters</span>.<span>AddRange</span>(<span>p</span>);<span>方法二:</span>
<span>OleDbParameter </span><span>pp</span>;<span>pp </span>= <span>new </span><span>OleDbParameter</span>(<span>"@aa"</span>,<span>OleDbType</span>.<span>Integer</span>);<span>pp</span>.<span>Value </span>= 1;<span>Objcmd</span>.<span>Parameters</span>.<span>Add</span>(<span>pp</span>);<span>pp </span>= <span>new </span><span>OleDbParameter</span>(<span>"@bb"</span>, <span>OleDbType</span>.<span>LongVarChar</span>);<span>pp</span>.<span>Value </span>= <span>"shelley"</span>;<span>Objcmd</span>.<span>Parameters</span>.<span>Add</span>(<span>pp</span>);<span>pp </span>= <span>new </span><span>OleDbParameter</span>(<span>"@cc"</span>, <span>OleDbType</span>.<span>Date</span>);<span>pp</span>.<span>Value </span>= <span>DateTime</span>.<span>Now</span>;<span>Objcmd</span>.<span>Parameters</span>.<span>Add</span>(<span>pp</span>);
无论怎么样写,都会提示“必须声明标量变量@aa”,最终的原因是下面这句:
<span>OleDbCommand </span><span>Objcmd </span>= <span>new </span><span>OleDbCommand</span>(<span>"insert into test (a,b,c)values(@aa,@bb,@cc)"</span>, <span>Objconn</span>);
正确写法:
<span>OleDbCommand </span><span>Objcmd </span>= <span>new </span><span>OleDbCommand</span>(<span>"insert into test (a,b,c)values(?,?,?)"</span>, <span>Objconn</span>);
这样就正常通过了。
【错误二】Sybase提示错误:不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))
.net用Oledb操作Sybase,因为在一个sql语句中可能会多次用到同一个参数,代码如下:
<span>OleDbCommand </span><span>Objcmd </span>= <span>new </span><span>OleDbCommand</span>(<span>"update test set a=@aa where a=@aa"</span>, <span>Objconn</span>);<span>OleDbParameter</span>[] <span>p </span>= <span>new </span><span>OleDbParameter</span>[] { <span>new </span><span>OleDbParameter</span>(<span>"aa"</span>,1), <span>new </span><span>OleDbParameter</span>(<span>"aa"</span>,1)};<span>Objcmd</span>.<span>Parameters</span>.<span>AddRange</span>(<span>p</span>);<span>Objconn</span>.<span>Open</span>();<span>Objcmd</span>.<span>ExecuteNonQuery</span>();<span>Objconn</span>.<span>Close</span>();
上面的代码就会提示“不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))”错误。问题原因在于参数中存在两个相同名字,对于这种情况只需要写一个参数就可以了,改动如下:
<span>OleDbCommand </span><span>Objcmd </span>= <span>new </span><span>OleDbCommand</span>(<span>"update test set a=@aa where a=@aa"</span>, <span>Objconn</span>);<span>OleDbParameter</span>[] <span>p </span>= <span>new </span><span>OleDbParameter</span>[] { <span>new </span><span>OleDbParameter</span>(<span>"aa"</span>,1)};
或
<span>OleDbCommand </span><span>Objcmd </span>= <span>new </span><span>OleDbCommand</span>(<span>"update test set a=@aa where a=@aa2"</span>, <span>Objconn</span>);<span>OleDbParameter</span>[] <span>p </span>= <span>new </span><span>OleDbParameter</span>[] { <span>new </span><span>OleDbParameter</span>(<span>"aa"</span>,1), <span>new </span><span>OleDbParameter</span>(<span>"aa2"</span>,1)};
【总结】
如果写一个程序,需要支持SqlServer和Sybase的时候这个地方需要特别注意:
1.SqlServer需要用“?”作为参数占位符,这样要求即使用到了同一个参数,也必须多次添加Parameter;
2.Sybase如果多次使用同一个参数,不能多次添加Parameter,否则会报错;

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Les étapes d'importation sont les suivantes : Copiez le fichier MDF dans le répertoire de données de SQL Server (généralement C:\Program Files\Microsoft SQL Server\MSSQL\DATA). Dans SQL Server Management Studio (SSMS), ouvrez la base de données et sélectionnez Attacher. Cliquez sur le bouton Ajouter et sélectionnez le fichier MDF. Confirmez le nom de la base de données et cliquez sur le bouton OK.

Pour les objets du même nom qui existent déjà dans la base de données SQL Server, les étapes suivantes doivent être suivies : Confirmez le type d'objet (table, vue, procédure stockée). IF NOT EXISTS peut être utilisé pour ignorer la création si l'objet est vide. Si l'objet contient des données, utilisez un nom différent ou modifiez la structure. Utilisez DROP pour supprimer des objets existants (soyez prudent, sauvegarde recommandée). Vérifiez les modifications de schéma pour vous assurer qu'il n'y a aucune référence à des objets supprimés ou renommés.

Lorsque le service SQL Server ne parvient pas à démarrer, voici quelques étapes à résoudre : Consultez le journal des erreurs pour déterminer la cause première. Assurez-vous que le compte de service est autorisé à démarrer le service. Vérifiez si les services de dépendance sont en cours d'exécution. Désactivez le logiciel antivirus. Réparez l'installation de SQL Server. Si la réparation ne fonctionne pas, réinstallez SQL Server.

Pour afficher le numéro de port SQL Server : Ouvrez SSMS et connectez-vous au serveur. Recherchez le nom du serveur dans l'Explorateur d'objets, cliquez dessus avec le bouton droit et sélectionnez Propriétés. Dans l'onglet Connexion, affichez le champ Port TCP.

Les fichiers de base de données SQL Server sont généralement stockés à l'emplacement par défaut suivant : Windows : C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux : /var/opt/mssql/data L'emplacement du fichier de base de données peut être personnalisé en modifiant le chemin du fichier de base de données. paramètre.

Si vous supprimez accidentellement une base de données SQL Server, vous pouvez suivre les étapes suivantes pour la récupérer : arrêter l'activité de la base de données ; sauvegarder les fichiers journaux ; vérifier les options de récupération : restaurer à partir d'une sauvegarde ; utiliser DBCC CHECKDB ; outils de fête. Veuillez sauvegarder régulièrement votre base de données et activer la journalisation des transactions pour éviter toute perte de données.

Si l'installation de SQL Server échoue, vous pouvez la nettoyer en suivant ces étapes : Désinstaller SQL Server Supprimer les clés de registre Supprimer les fichiers et dossiers Redémarrer l'ordinateur

L'installation de SQL Server en anglais peut être modifiée en chinois en suivant les étapes suivantes : téléchargez le module linguistique correspondant ; arrêtez le service SQL Server ; modifiez la langue de l'instance ; modifiez la langue de l'interface utilisateur ;
