Adaptateur De Données Vs Commande Sql
Qu'on serait mieux dans l'exécution d'une instruction insert pour ms-sql base de données:
Sql DataAdapter ou Commande SQL
Objet?
Qui pourrait être mieux, tout en inserting only one row
et tout inserting multiple rows
?
Un exemple simple de l'utilisation de code:
Commande SQL
string query = "insert into Table1(col1,col2,col3) values (@value1,@value2,@value3)";
int i;
SqlCommand cmd = new SqlCommand(query, connection);
//add parameters...
cmd.Parameters.Add("@value1",SqlDbType.VarChar).Value=txtBox1.Text;
cmd.Parameters.Add("@value2",SqlDbType.VarChar).Value=txtBox2.Text;
cmd.Parameters.Add("@value3",SqlDbType.VarChar).Value=txtBox3.Text;
cmd.con.open();
i = cmd.ExecuteNonQuery();
cmd.con.close();
De Données SQL Adaptateur
DataRow dr = dsTab.Tables["Table1"].NewRow();
DataSet dsTab = new DataSet("Table1");
SqlDataAdapter adp = new SqlDataAdapter("Select * from Table1", connection);
adp.Fill(dsTab, "Table1");
dr["col1"] = txtBox1.Text;
dr["col2"] = txtBox5.Text;
dr["col3"] = "text";
dsTab.Tables["Table1"].Rows.Add(dr);
SqlCommandBuilder projectBuilder = new SqlCommandBuilder(adp);
DataSet newSet = dsTab.GetChanges(DataRowState.Added);
adp.Update(newSet, "Table1");
Travaillez-vous avec les jeux de données dans votre DataLayer pour la lecture des données?
Non, je n'ai plus le contrôle de la base de données.
Non, je n'ai plus le contrôle de la base de données.
OriginalL'auteur Jayesh | 2011-07-04
Vous devez vous connecter pour publier un commentaire.
Mise à jour d'une source de données est beaucoup plus facile en utilisant DataAdapters. Il est plus facile de faire des changements car vous avez juste à modifier le jeu de données et de l'appel de mise à Jour.
Il n'est probablement pas (ou très peu) de différence dans la performance entre l'utilisation de DataAdapters vs Commandes. DataAdapters utiliser à l'interne de Raccordement et de Commande des objets et exécuter les Commandes à exécuter les actions (telles que Remplir et mettre à Jour) que vous leur dites de faire, donc c'est à peu près le même qu'en utilisant uniquement des objets de Commande.
OriginalL'auteur Muhammad Akhtar
Je voudrais utiliser LinqToSql avec un jeu de données unique d'insertion et de plus de la Base de données CRUD demandes. Il est de type sécurisé, relativement rapide pour les non compilcated des requêtes telles que celle ci-dessus.
Si vous avez un grand nombre de lignes à insérer (1000+) et vous êtes à l'aide de SQL Server 2008 je voudrais utiliser SqlBulkCopy. Vous pouvez utiliser votre jeu de données et d'entrée dans une procédure stockée et de fusion dans votre destination
Pour les requêtes compliquées, je recommande d'utiliser dapper en conjonction avec des procédures stockées.
OriginalL'auteur cesara
Je vous suggère de vous aurait une sorte de contrôle sur votre communication avec la base de données. Cela signifie que l'abstraction de certains de code, et pour que le CommandBuilder génère automatiquement de la CUD consolidés pour vous.
Ce qui serait encore mieux, c'est si vous utilisez cette technique avec un Dataset typé. ensuite, vous avez intellisense et compiler le temps de vérifier tous vos colonnes
OriginalL'auteur Martin