Объект команды содержит информацию о доступе, передаваемую в систему базы данных.
Объекты OleDbCommand и SqlCommand имеют одинаковые базовые объекты и методы работы. Здесь мы только представляем использование OleDbCommand, а использование SqlCommand можно вывести по аналогии.
Наиболее часто используемый метод инициализации объекта Command — это введение двух параметров при создании экземпляра Command.
OleDbCommand myComm = новый OleDbCommand (strQuery, myConnection);
strQuery — это имя инструкции SQL или хранимой процедуры, а myConnection — созданный экземпляр объекта Connection.
Основные свойства объекта Command:
Связь:
CommandText: установите или получите экземпляр объекта Connection, используемый объектом Command.
Тип команды: StoredProceduce, TableDirect, Text (стандартный оператор SQL).
Параметры: получить набор значений параметров.
ExecuteReader: выполнить оператор SQL или имя хранимой процедуры, указанное в CommandText, а тип возвращаемого значения — DataReader.
ExecuteNonQuery: та же функция, что и ExecuteReader, за исключением того, что возвращаемое значение — это количество строк записи, на которые влияет выполнение инструкции SQL или хранимой процедуры.
Чтение данных — SqlDataReader, OleDbDataReader
FieldCount: отображает общее количество полей в текущей записи операции.
IsClosed: определяет, закрыт ли DataReader.
Закрыть: Закрыть DataReader
GetString: возвращает значение в указанном столбце в виде строки.
GetValue: возвращает значение в указанном столбце в своем собственном типе.
GetValues: возвращает коллекцию всех полей текущей записи.
Чтение: прочитать следующую запись. Пример:
<% @ Язык страницы="C#" %>
<% @ Import Namespace="System.Data"%>
<% @ Import Namespace="System.Data.OleDb"%>
--------------------------------------------------
<% @ Import Namespace="System.Data.SqlClient"%>
<Script Language="c#" Runat="Сервер">
OleDbDataReader dr;
String myconnstring="Provider=Microsoft.Jet.OLEDB.4.0; DataSource="+Server.MapPath(".")+"..mdb";
строка sql=".."
OleDbConnection my_conn = новый OleDbConnection (myconnstring);
OleDbCommand my_comm = новый OleDbCommand (sql, my_conn);
my_comm.Connection.Open();
dr=my_comm.ExecuteReader();
//DataGrid базы данных
dg.DataSource=др
dg.DataBind();
</скрипт>
<голова>
<% while(dr.Read())
...{;}
%>
</голова>
Адаптер данных набора данных
DataAdapter используется вместе с DataSet.
OleDbDataAdapter my_adapter = новый OleDbDataAdapter ();
--------------------------------------------------
SqlDataAdapter my_sqladapter = новый SqlDataAdapter ();
my_adapter.SelectCommand.Connection=my_conn;
или
my_adapter.UpdateCommand.Connection=my_conn;
my_adapter.DeleteCommand.Connection=my_conn;
my_adapter.InsertCommand.Connection=my_conn;
Если вам нужно выполнить инструкции Sql, вы также должны присвоить значение соответствующему свойству CommandText. http://sucai.downcodes.com/
my_adapter.SelectCommand.CommandText=strSelect;
my_adapter.UpdateCommand.CommandText = strUpdate;
my_adapter.InsertCommand.CommandText = strInsert;
my_adapter.DeleteCommand.CommandText = strDelete;
Если вы просто отправляете запрос к базе данных, вы можете выполнить описанную выше работу при создании экземпляра DataAdapter.
OleDbDataAdapter MyAdapter = новый OleDbDataAdapter (sql, my_conn);
DataSet ds = новый DataSet();
OleDbConnection my_conn = новый OleDbConnection (myconnstring);
OleDbDataAdapter my_adapter = новый OleDbDataAdapter (sql, my_conn);
my_adapter.fill(ds, "оценка");
Оценка DataGrid;
счет.DataSource=ds.Table["оценка"].Defaultview;
оценка.DataBind();
//Вставитькоманду
DataRow dr=ds.Table["Оценка"].NewRow();
dr["name"]=..
ds.Tables["Оценка"].Rows.Add(dr);
//обновлять
DataAdapter.Update(ds,"Оценка");
//изменить
DataRow dr=ds.Tables["Оценка"].Rows[0];
доктор["имя"]=;
//Удалить
DataRow dr=ds.Talbes["Оценка"].Rows[0];
доктор.Удалить();
//Примечание:
OleDbConnection my_conn = новый OleDbConnection (myconnstring);
OleDbDataAdapter my_adapter = новый OleDbDataAdapter (sql, my_conn);
OleDbCommandBuilder custCB=new OleDbCommandBuilder(my_adapter);//DataAdapter не может автоматически генерировать (Transact-SQL) при изменении данных, поэтому необходимо использовать CommandBuilder, который может автоматически генерировать операторы Sql! Всего один шаг
RejectChanges — это метод, общий для DataSet, DataTable и DataRow, который позволяет объекту операции отклонять произошедшие изменения и демобилизовать данные.
если (DataSet.HasErrors)
...{
DataSet.RejectChanges();
}
иначе... { DataSet.AcceptChanges();}
-------------------------------------------------- -------------------------------------------------- ----------------------------------
Чтение данных->Таблица данных
общедоступный статический DataTable ConvertDataReaderToDataTable (SqlDataReader dataReader)
...{
/**//**//**////Определение таблицы данных и схемы
DataTable datatable = новый DataTable();
DataTable SchemaTable = dataReader.GetSchemaTable(); //Импортируем структуру таблицы данных.
пытаться
...{ /**//**//**////Динамическое добавление столбцов данных таблицы
foreach(DataRow myRow в SchemaTable.Rows)
...{
DataColumn myDataColumn = новый DataColumn ();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
/**//**//**////Добавление данных таблицы
пока (dataReader.Read())
...{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
...{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = ноль;
}
схемаТаблица = ноль;
/**//**//**////Закрываем считыватель данных
Чтение данных.Закрыть();
вернуть таблицу данных;
}
поймать (исключение ex)
...{
/**//**//**////Выдает ошибку преобразования типа
SystemError.SystemLog(ex.Message);
выдать новое исключение (ex.Message,ex);
}
}
}
}