El objeto Comando contiene información de acceso enviada al sistema de base de datos.
Los objetos OleDbCommand y SqlCommand tienen los mismos objetos básicos y métodos de operación. Aquí solo presentamos el uso de OleDbCommand, y el uso de SqlCommand se puede deducir por analogía.
El método más utilizado para inicializar un objeto Command es incorporar dos parámetros al crear una instancia de Command.
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery es la declaración SQL o el nombre del procedimiento almacenado y myConnection es la instancia del objeto Connection creada.
Las principales propiedades del objeto Comando son
Conexión:
CommandText: establece u obtiene la instancia del objeto Conexión utilizada por el objeto Comando
CommandType: StoredProceduce, TableDirect, Texto (instrucción SQL estándar)
Parámetros: obtenga el valor del parámetro establecido
ExecuteReader: ejecuta la instrucción SQL o el nombre del procedimiento almacenado especificado por CommandText y el tipo de retorno es DataReader
ExecuteNonQuery: la misma función que ExecuteReader, excepto que el valor de retorno es el número de filas de registro afectadas por la ejecución de la instrucción SQL o el procedimiento almacenado.
DataReader--SqlDataReader, OleDbDataReader
FieldCount: muestra el número total de campos en el registro de operación actual
IsClosed: determina si el DataReader está cerrado
Cerrar: Cerrar DataReader
GetString: devuelve el valor de la columna especificada como cadena
GetValue: devuelve el valor de la columna especificada en su propio tipo
GetValues: devuelve una colección de todos los campos del registro actual
Leer: Leer el siguiente registro. Ejemplo:
<% @ Idioma de página="C#" %>
<% @ Importar espacio de nombres="System.Data"%>
<% @ Importar espacio de nombres="System.Data.OleDb"%>
--------------------------------------------------
<% @ Importar espacio de nombres="System.Data.SqlClient"%>
<% mientras(dr.Read())
...{;}
%>
Adaptador de datos del conjunto de datos
DataAdapter se utiliza junto con DataSet
OleDbDataAdapter my_adapter=nuevo OleDbDataAdapter();
--------------------------------------------------
SqlDataAdapter my_sqladapter=new SqlDataAdapter();
my_adapter.SelectCommand.Connection=my_conn;
o
my_adapter.UpdateCommand.Connection=my_conn;
my_adapter.DeleteCommand.Connection=my_conn;
my_adapter.InsertCommand.Connection=my_conn;
Si necesita ejecutar sentencias Sql, también debe asignar un valor a la propiedad CommandText correspondiente. 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 simplemente consulta la base de datos, puede completar el trabajo anterior al crear la instancia de DataAdapter.
OleDbDataAdapter MyAdapter=nuevo OleDbDataAdapter(sql,my_conn);
Conjunto de datos ds=nuevo conjunto de datos();
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=nuevo OleDbDataAdapter(sql,my_conn);
my_adapter.fill(ds,"puntuación");
puntuación de DataGrid;
puntuación.DataSource=ds.Table["puntuación"].Defaultview;
puntuación.DataBind();
//Insertarcomando
DataRow dr=ds.Table["Puntuación"].NewRow();
dr["nombre"]=..
ds.Tables["Puntuación"].Rows.Add(dr);
//actualizar
DataAdapter.Update(ds,"Puntuación");
//modificar
DataRow dr=ds.Tables["Puntuación"].Filas[0];
dr["nombre"]=;
//Borrar
DataRow dr=ds.Talbes["Puntuación"].Filas[0];
dr.Delete();
//Nota:
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=nuevo OleDbDataAdapter(sql,my_conn);
OleDbCommandBuilder custCB=new OleDbCommandBuilder(my_adapter);//DataAdapter no puede generar automáticamente (Transact-SQL) cuando los datos cambian, por lo que debe usar CommandBuilder, que puede generar automáticamente declaraciones Sql. solo un paso
RejectChanges es un método común a DataSet, DataTable y DataRow para permitir que el objeto de operación rechace los cambios que han ocurrido y desmovilice los datos.
si (conjunto de datos.HasErrors)
...{
Conjunto de datos.RejectChanges();
}
más...{ DataSet.AcceptChanges();}
-------------------------------------------------- -------------------------------------------------- ----------------------------------
Lector de datos->Tabla de datos
DataTable estática pública ConvertDataReaderToDataTable (SqlDataReader dataReader)
...{
/**//**//**////Definir tabla de datos y esquema
Tabla de datos tabla de datos = nueva Tabla de datos();
DataTable SchemaTable = dataReader.GetSchemaTable(); //Importar la estructura de la tabla de una tabla de datos.
intentar
...{ /**//**//**////Agregar dinámicamente columnas de datos de la tabla
foreach(DataRow myRow en esquemaTable.Rows)
...{
Columna de datos miColumna de datos = nueva Columna de datos();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
tabla de datos.Columnas.Add(myDataColumn);
}
/**//**//**////Agregar datos de tabla
mientras (dataReader.Read())
...{
DataRow myDataRow = datatable.NewRow();
para(int i=0;i
myDataRow[i] = dataReader[i].ToString();
}
tabla de datos.Rows.Add(myDataRow);
myDataRow = nulo;
}
tabla de esquema = nulo;
/**//**//**////Cerrar el lector de datos
dataReader.Close();
devolver tabla de datos;
}
captura (Excepción ex)
...{
/**//**//**////Lanza un error de conversión de tipo
SystemError.SystemLog(ex.Mensaje);
lanzar una nueva excepción (ex.Mensaje, ex);
}
}
}
}