L'objet Command contient les informations d'accès soumises au système de base de données.
Les objets OleDbCommand et SqlCommand ont les mêmes objets de base et méthodes de fonctionnement. Ici, nous introduisons uniquement l'utilisation d'OleDbCommand, et l'utilisation de SqlCommand peut être déduite par analogie.
La méthode la plus couramment utilisée pour initialiser un objet Command consiste à introduire deux paramètres lors de la création d’une instance Command.
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery est le nom de l'instruction SQL ou de la procédure stockée et myConnection est l'instance d'objet Connection créée.
Les principales propriétés de l'objet Command sont
Connexion:
CommandText : définit ou récupère l'instance de l'objet Connection utilisée par l'objet Command.
CommandType : StoredProceduce, TableDirect, Text (instruction SQL standard)
Paramètres : obtenez la valeur du paramètre définie
ExecuteReader : exécute l'instruction SQL ou le nom de la procédure stockée spécifié par CommandText et le type de retour est DataReader
ExecuteNonQuery : même fonction que ExecuteReader, sauf que la valeur de retour est le nombre de lignes d'enregistrement affectées par l'exécution de l'instruction SQL ou de la procédure stockée.
DataReader--SqlDataReader, OleDbDataReader
FieldCount : affiche le nombre total de champs dans l'enregistrement de l'opération en cours
IsClosed : Déterminez si le DataReader est fermé
Fermer : Fermer DataReader
GetString : renvoie la valeur dans la colonne spécifiée sous forme de chaîne
GetValue : renvoie la valeur dans la colonne spécifiée dans son propre type
GetValues : renvoie une collection de tous les champs de l'enregistrement actuel
Lire : Lire l'enregistrement suivant. Exemple :
<% @ Langage de la page="C#" %>
<% @ Importer l'espace de noms="System.Data"%>
<% @ Importer l'espace de noms="System.Data.OleDb"%>
--------------------------------------------------
<% @ Import Namespace="System.Data.SqlClient"%>
OleDbDataReader dr;
String myconnstring="Provider=Microsoft.Jet.OLEDB.4.0; DataSource="+Server.MapPath(".")+"..mdb";
chaîne sql=".."
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbCommand my_comm=new OleDbCommand(sql,my_conn);
mon_comm.Connection.Open();
dr=my_comm.ExecuteReader();
//DataGrid dg
dg.DataSource=dr
dg.DataBind();
<% while(dr.Read())
...{;}
%>
Adaptateur de données DataSet
DataAdapter est utilisé conjointement avec DataSet
OleDbDataAdapter my_adapter=new OleDbDataAdapter();
--------------------------------------------------
SqlDataAdapter my_sqladapter=new SqlDataAdapter();
my_adapter.SelectCommand.Connection=my_conn;
ou
my_adapter.UpdateCommand.Connection=my_conn;
my_adapter.DeleteCommand.Connection=my_conn;
mon_adaptateur.InsertCommand.Connection=my_conn;
Si vous devez exécuter des instructions SQL, vous devez également attribuer une valeur à la propriété CommandText correspondante. http://sucai.downcodes.com/
my_adapter.SelectCommand.CommandText=strSelect;
my_adapter.UpdateCommand.CommandText=strUpdate;
my_adapter.InsertCommand.CommandText=strInsert;
my_adapter.DeleteCommand.CommandText=strDelete;
Si vous interrogez simplement la base de données, vous pouvez effectuer le travail ci-dessus lors de la création de l'instance DataAdapter.
OleDbDataAdapter MyAdapter=new OleDbDataAdapter(sql,my_conn);
DataSet ds=nouveau DataSet();
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);
mon_adaptateur.fill(ds,"score");
Score DataGrid ;
score.DataSource=ds.Table["score"].Defaultview;
score.DataBind();
//InsérerCommand
DataRow dr=ds.Table["Score"].NewRow();
dr["nom"]=..
ds.Tables["Score"].Rows.Add(dr);
//mise à jour
DataAdapter.Update(ds,"Score");
//modifier
DataRow dr=ds.Tables["Score"].Rows[0];
dr["nom"]=;
//Supprimer
DataRow dr=ds.Talbes["Score"].Rows[0];
dr.Delete();
//Note:
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);
OleDbCommandBuilder custCB=new OleDbCommandBuilder(my_adapter);//DataAdapter ne peut pas générer automatiquement (Transact-SQL) lorsque les données changent, vous devez donc utiliser CommandBuilder, qui peut générer automatiquement des instructions SQL ! Juste un pas
RejectChanges est une méthode commune à DataSet, DataTable et DataRow pour permettre à l'objet opération de rejeter les modifications survenues et de démobiliser les données.
si (DataSet.HasErrors)
...{
DataSet.RejectChanges();
}
sinon...{ DataSet.AcceptChanges();}
-------------------------------------------------- -------------------------------------------------- ----------------------------------
DataReader-> DataTable
DataTable statique publique ConvertDataReaderToDataTable (SqlDataReader dataReader)
...{
/**//**//**////Définir DataTable et le schéma
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable(); //Importer la structure d'une table de données
essayer
...{ /**//**//**////Ajouter dynamiquement des colonnes de données de la table
foreach (DataRow myRow dans schemaTable.Rows)
...{
DataColumn maDataColumn = new DataColumn();
maColonneDonnées.DataType = maRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
/**//**//**////Ajouter des données de table
pendant que (dataReader.Read())
...{
DataRow myDataRow = datatable.NewRow();
pour(int i=0;i
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
maRangéeDonnées = null ;
}
schémaTable = nul ;
/**//**//**////Fermez le lecteur de données
dataReader.Close();
renvoyer la table de données ;
}
attraper(Exception ex)
...{
/**//**//**////Lance une erreur de conversion de type
SystemError.SystemLog(ex.Message);
lancer une nouvelle exception (ex.Message,ex);
}
}
}
}