Command 개체에는 데이터베이스 시스템에 제출된 액세스 정보가 포함되어 있습니다.
OleDbCommand와 SqlCommand 개체는 기본 개체와 작업 방법이 동일합니다. 여기서는 OleDbCommand의 사용법만 소개하고 SqlCommand의 사용법은 유추해 볼 수 있습니다.
Command 객체를 초기화하는 데 가장 일반적으로 사용되는 방법은 Command 인스턴스를 생성할 때 두 개의 매개 변수를 가져오는 것입니다.
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery는 SQL 문 또는 저장 프로시저 이름이고 myConnection은 생성된 Connection 개체 인스턴스입니다.
Command 개체의 주요 속성은 다음과 같습니다.
연결:
CommandText: Command 개체에서 사용하는 Connection 개체 인스턴스를 설정하거나 가져옵니다.
CommandType: StoredProceduce, TableDirect, Text(표준 SQL 문)
매개변수: 매개변수 값 세트를 가져옵니다.
ExecuteReader: CommandText에 지정된 SQL 문 또는 저장 프로시저 이름을 실행하고 반환 유형은 DataReader입니다.
ExecuteNonQuery: 반환 값이 SQL 문이나 저장 프로시저의 실행에 의해 영향을 받는 레코드 행 수라는 점을 제외하면 ExecuteReader와 동일한 함수입니다.
DataReader--SqlDataReader, OleDbDataReader
FieldCount: 현재 작업 레코드의 총 필드 수를 표시합니다.
IsClosed: DataReader가 닫혔는지 확인합니다.
닫기: DataReader를 닫습니다.
GetString: 지정된 열의 값을 문자열로 반환합니다.
GetValue: 지정된 열의 값을 고유한 유형으로 반환합니다.
GetValues: 현재 레코드의 모든 필드 컬렉션을 반환합니다.
읽기: 다음 레코드를 읽습니다. 예:
<% @ 페이지 언어="C#" %>
<% @ Import Namespace="System.Data"%>
<% @ Import Namespace="System.Data.OleDb"%>
-------------------------------------
<% @ Import Namespace="System.Data.SqlClient"%>
<스크립트 언어="c#" Runat="서버">
OleDbDataReader dr;
String myconnstring="Provider=Microsoft.Jet.OLEDB.4.0; DataSource="+Server.MapPath(".")+"..mdb";
문자열 sql=".."
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbCommand my_comm=new OleDbCommand(sql,my_conn);
my_comm.Connection.Open();
dr=my_comm.ExecuteReader();
//데이터그리드 dg
dg.DataSource=dr
dg.DataBind();
</스크립트>
<머리>
<% 동안(dr.Read())
...{;}
%>
</head>
데이터세트 데이터어댑터
DataAdapter는 DataSet과 함께 사용됩니다.
OleDbDataAdapter my_adapter=new OleDbDataAdapter();
-------------------------------------
SqlDataAdapter my_sqladapter=new 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=new DataSet();
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);
my_adapter.fill(ds,"점수");
DataGrid 점수;
Score.DataSource=ds.Table["score"].Defaultview;
점수.DataBind();
//삽입명령
DataRow dr=ds.Table["Score"].NewRow();
dr["name"]=..
ds.Tables["Score"].Rows.Add(dr);
//업데이트
DataAdapter.Update(ds,"점수");
//수정하다
DataRow dr=ds.Tables["Score"].Rows[0];
dr["이름"]=;
//삭제
DataRow dr=ds.Talbes["점수"].Rows[0];
dr.삭제();
//메모:
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);
OleDbCommandBuilder custCB=new OleDbCommandBuilder(my_adapter);//DataAdapter는 데이터가 변경될 때 자동으로 생성(Transact-SQL)할 수 없으므로 SQL 문을 자동으로 생성할 수 있는 CommandBuilder를 사용해야 합니다! 한걸음만이라도
RejectChanges는 작업 개체가 발생한 변경 사항을 거부하고 데이터를 비활성화할 수 있도록 하는 DataSet, DataTable 및 DataRow에 공통적인 메서드입니다.
if(DataSet.HasErrors)
...{
DataSet.RejectChanges();
}
그렇지 않으면...{ DataSet.AcceptChanges();}
------------------------------------- ------------------------------------- ----------------------------------
DataReader->DataTable
공개 정적 DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
...{
/**//**//**////DataTable 및 스키마 정의
DataTable 데이터테이블 = new DataTable();
DataTableschemaTable = dataReader.GetSchemaTable(); //데이터 테이블의 테이블 구조 가져오기
노력하다
...{ /**//**//**////테이블의 데이터 열을 동적으로 추가합니다.
foreach(schemaTable.Rows의 DataRow myRow)
...{
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 = null;
}
스키마테이블 = null;
/**//**//**////데이터 리더 닫기
dataReader.Close();
데이터 테이블을 반환합니다.
}
catch(예외예외)
...{
/**//**//**////형 변환 오류 발생
SystemError.SystemLog(ex.메시지);
새로운 예외 발생(ex.Message,ex);
}
}
}
}