يحتوي كائن الأمر على معلومات الوصول المقدمة إلى نظام قاعدة البيانات.
تحتوي كائنات OleDbCommand وSqlCommand على نفس الكائنات الأساسية وأساليب التشغيل. هنا نقدم فقط استخدام OleDbCommand، ويمكن استنتاج استخدام SqlCommand عن طريق القياس.
الطريقة الأكثر استخدامًا لتهيئة كائن Command هي إحضار معلمتين عند إنشاء مثيل Command.
OleDbCommand myComm=new OleDbCommand(strQuery,myConnection);
strQuery هو عبارة SQL أو اسم الإجراء المخزن، وmyConnection هو مثيل كائن الاتصال الذي تم إنشاؤه.
الخصائص الرئيسية لكائن الأمر هي
اتصال:
CommandText: قم بتعيين أو الحصول على مثيل كائن الاتصال الذي يستخدمه كائن الأوامر
CommandType: StoredProceduce، TableDirect، نص (بيان SQL قياسي)
المعلمات: احصل على مجموعة قيمة المعلمة
ExecuteReader: تنفيذ عبارة SQL أو اسم الإجراء المخزن المحدد بواسطة CommandText، ونوع الإرجاع هو DataReader
ExecuteNonQuery: نفس وظيفة ExecuteReader، باستثناء أن القيمة المرجعة هي عدد صفوف السجلات المتأثرة بتنفيذ عبارة SQL أو الإجراء المخزن.
قارئ البيانات--SqlDataReader، OleDbDataReader
FieldCount: يعرض إجمالي عدد الحقول في سجل العملية الحالية
IsClosed: تحديد ما إذا كان 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();
//DataGrid dg
dg.DataSource=dr
dg.DataBind();
</ سكريبت>
<الرأس>
<% بينما(د.قراءة())
...{;}
%>
</الرأس>
محول بيانات مجموعة البيانات
يتم استخدام 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);
DataSet ds=new DataSet();
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new OleDbDataAdapter(sql,my_conn);
my_adapter.fill(ds،"score")؛
نقاط DataGrid؛
Score.DataSource=ds.Table["score"].Defaultview;
Score.DataBind();
//إدراجكوماند
DataRow dr=ds.Table["Score"].NewRow();
dr["name"]=..
ds.Tables["Score"].Rows.Add(dr);
//تحديث
DataAdapter.Update(ds,"Score");
//يُعدِّل
DataRow dr=ds.Tables["Score"].Rows[0];
دكتور["اسم"]=;
//يمسح
DataRow dr=ds.Talbes["Score"].Rows[0];
حذف ()؛
//ملحوظة:
OleDbConnection my_conn=new OleDbConnection(myconnstring);
OleDbDataAdapter my_adapter=new 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 = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable(); // استيراد بنية الجدول لجدول البيانات
يحاول
...{ /**//**//**//// إضافة أعمدة بيانات الجدول ديناميكيًا
foreach(DataRow myRow في schemaTable.Rows)
...{
DataColumn myDataColumn = new 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;
}
schemaTable = null;
/**//**//**////أغلق قارئ البيانات
dataReader.Close();
إرجاع جدول البيانات؛
}
قبض (استثناء على سبيل المثال)
...{
/**//**//**////يؤدي إلى خطأ في تحويل النوع
SystemError.SystemLog(ex.Message);
رمي استثناء جديد (ex.Message، ex)؛
}
}
}
}