Command オブジェクトには、データベース システムに送信されるアクセス情報が含まれています。
OleDbCommand オブジェクトと SqlCommand オブジェクトは、基本的なオブジェクトと操作メソッドが同じです。ここでは OleDbCommand の使用法のみを紹介します。SqlCommand の使用法は類推できます。
Command オブジェクトを初期化するために最も一般的に使用される方法は、Command インスタンスの作成時に 2 つのパラメーターを取り込むことです。
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery は SQL ステートメントまたはストアド プロシージャの名前で、myConnection は作成された Connection オブジェクト インスタンスです。
Command オブジェクトの主なプロパティは次のとおりです。
繋がり:
CommandText: Command オブジェクトによって使用される Connection オブジェクト インスタンスを設定または取得します。
CommandType: StoredProceduce、TableDirect、Text (標準 SQL ステートメント)
パラメータ: パラメータ値セットを取得します。
ExecuteReader: CommandText で指定された SQL ステートメントまたはストアド プロシージャ名を実行します。戻り値の型は DataReader です。
ExecuteNonQuery: ExecuteReader と同じ関数ですが、戻り値が SQL ステートメントまたはストアド プロシージャの実行によって影響を受けるレコード行数である点が異なります。
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"%>
<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=new OleDbCommand(sql,my_conn);
my_comm.Connection.Open();
dr=my_comm.ExecuteReader();
//データグリッドdg
dg.DataSource=dr
dg.DataBind();
</スクリプト>
<頭>
<% while(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=new OleDbDataAdapter(sql,my_conn);
データセット ds=新しいデータセット();
OleDbConnection my_conn=新しい OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);
my_adapter.fill(ds,"スコア");
データグリッドスコア。
スコア.DataSource=ds.Table["スコア"].Defaultview;
スコア.DataBind();
//コマンドの挿入
DataRow dr=ds.Table["スコア"].NewRow();
dr["名前"]=..
ds.Tables["スコア"].Rows.Add(dr);
//アップデート
DataAdapter.Update(ds,"スコア");
//修正する
DataRow dr=ds.Tables["スコア"].Rows[0];
dr["名前"]=;
//消去
DataRow dr=ds.Talbes["スコア"].Rows[0];
dr.削除();
//注記:
OleDbConnection my_conn=新しい 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();
}
else...{ DataSet.AcceptChanges();}
-------------------------------------------------- -------------------------------------------------- ----------------------------------
データリーダー -> データテーブル
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
...{
/**//**//**////DataTable とスキーマを定義する
DataTable データテーブル = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable() //データテーブルのテーブル構造をインポートします。
試す
...{ /**//**//**////テーブルのデータ列を動的に追加します
foreach(schemaTable.Rows の DataRow myRow)
...{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
/**//**//**////テーブルデータを追加
while(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.Message,ex);
}
}
}
}