قراءة البيانات من قاعدة البيانات باستخدام ADO.NET في تطبيقات ASP.NET Core
-
بنتعلم في هذا الدرس عملية القراءة من قواعد البيانات في ADO.NET وعرضها في View. لتنفيذ ذلك بنحتاج نستخدم object من نوع SqlDataReader الي هي مشتقة من class باسم DbDataReader .
تمام
تعتبر SqlDataReader class مفيدة عندما نحتاج إلى الحصول على كميات كبيرة من البيانات بسرعة ولا حاجه إلى الاحتفاظ بنسخه منها في الذاكرة.في مثالنا هون بنرجع بيانات المواد والطلاب من قاعدة البيانات وبعدها بنعرضها على الشاشة.
ملاحظة: SqlDataReader objects تعمل في بيئة متصلة بمعنى اخر حتي تعمل هذه الطريقة لازم نفتح اتصال مع قاعدة البيانات واكيد هذا الاتصال يبقى مفتوح حتى يتم إغلاقهً.
يمكنك الحصول على SqlDataReader objects من SqlCommand object عن طريق استخدام الامر ()ExecuteReader.
تمام التمام .لاستخدام هذه الامر سنقوم بقراءة جميع السجلات التي قمنا بحفظها سابقا في جدول الطلاب وعرضها في View مشان هيك خلونا نبدأ بعمل هذا View
نبدا بفتح المشروع الخاص بنا StudentsAcademy ثم انتقل الى StudentsController ومن ثم قم بإضافة action باسم AllStudent ، ثم اضف View من خلال هذا ال action
بعد هيك نضيف الكود التالي في action المسمى AllStudent :
public IActionResult AllStudent()
{
List<StudentsModel> StudentsModelList = new List<StudentsModel>();
try
{
string connectionString = Configuration["ConnectionStrings:DefaultConnection"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
string sql = $"select * from Students";
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
// Obtain a data reader via ExecuteReader().
using (SqlDataReader dataReader = command.ExecuteReader())
{
// Loop over the results
while (dataReader.Read())
{
StudentsModelList.Add(new StudentsModel
{
StudentID = Convert.ToInt32(dataReader["StudentId"]),
StudentNo = Convert.ToString(dataReader["StudentNo"]),
FullName = Convert.ToString(dataReader["FullName"]),
Birthday = Convert.ToDateTime(dataReader["Birthday"]),
Address = Convert.ToString(dataReader["Address"]),
UserName = Convert.ToString(dataReader["Address"]),
Email = Convert.ToString(dataReader["Email"]),
Mobile = Convert.ToString(dataReader["Mobile"]),
CreatedDate = Convert.ToDateTime(dataReader["CreatedDate"]),
});
}
}
connection.Close();
}
}
catch (Exception ex)
{
}
finally
{
}
return View(StudentsModelList);
}
dataReader["Filed Name"]
StudentID = Convert.ToInt32(dataReader["StudentId"]),
StudentNo = Convert.ToString(dataReader["StudentNo"]),
FullName = Convert.ToString(dataReader["FullName"]),
Birthday = Convert.ToDateTime(dataReader["Birthday"]),
Address = Convert.ToString(dataReader["Address"]),
UserName = Convert.ToString(dataReader["Address"]),
Email = Convert.ToString(dataReader["Email"]),
Mobile = Convert.ToString(dataReader["Mobile"]),
CreatedDate = Convert.ToDateTime(dataReader["CreatedDate"]),
List<StudentsModel> StudentsModelList = new List<StudentsModel>();
string sql = $"select * from Students";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string sql = $"select * from Students";
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
// Obtain a data reader via ExecuteReader().
using (SqlDataReader dataReader = command.ExecuteReader())
{
// Loop over the results
while (dataReader.Read())
{
StudentsModelList.Add(new StudentsModel
{
StudentID = Convert.ToInt32(dataReader["StudentId"]),
StudentNo = Convert.ToString(dataReader["StudentNo"]),
FullName = Convert.ToString(dataReader["FullName"]),
Birthday = Convert.ToDateTime(dataReader["Birthday"]),
Address = Convert.ToString(dataReader["Address"]),
UserName = Convert.ToString(dataReader["Address"]),
Email = Convert.ToString(dataReader["Email"]),
Mobile = Convert.ToString(dataReader["Mobile"]),
CreatedDate = Convert.ToDateTime(dataReader["CreatedDate"]),
});
}
}
(قمنا باستخدام أسماء الأعمدة بشكل ثابت من أجل الحصول على قيمها)، مثل -
dataReader["StudentId"]
dataReader["StudentNo"]
dataReader["FullName"]
using (SqlDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
string currentColName = dataReader.GetName(i);
string currentColValue = Convert.ToString(dataReader.GetValue(i));
}
}
}
string sql = "Select * From student; Select * from Report";
{
while (dataReader.Read())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
string currentColName = dataReader.GetName(i);
string currentColValue = Convert.ToString(dataReader.GetValue(i));
}
}
} while (dataReader.NextResult());
@model List<StudentsModel>
<link href="~/lib/bootstrap/dist/css/bootstrap.css.map" rel="stylesheet" />
<table class="table table-bordered table-sm table-striped">
<thead>
<tr>
<th scope="col">Student No</th>
<th scope="col">FullName</th>
<th scope="col">Birthday</th>
<th scope="col">Address</th>
<th scope="col">UserName</th>
<th scope="col">Email</th>
<th scope="col">Mobile</th>
<th scope="col">CreatedDate</th>
<th scope="col">Del</th>
</tr>
</thead>
<tbody>
@foreach (var student in Model)
{
<tr>
<td>
@student.StudentNo
</td>
<td>
@student.FullName
</td>
<td>
@Convert.ToDateTime(@student.Birthday).ToString("dd/MM/yyyy")
</td>
<td>
@student.Address
</td>
<td>
@student.UserName
</td>
<td>
@student.Email
</td>
<td>
@student.Mobile
</td>
<td>
@string.Format("{0:dd MMMM yyyy}",@student.CreatedDate)
</td>
<td>
<a onclick="DeleteStudent(@student.StudentID);" class="btn btn-danger small">Delete</a>
</td>
</tr>
}
</tbody>
</table>
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
<thead>
<tr>
<th scope="col">Student No</th>
<th scope="col">FullName</th>
<th scope="col">Birthday</th>
<th scope="col">Address</th>
<th scope="col">UserName</th>
<th scope="col">Email</th>
<th scope="col">Mobile</th>
<th scope="col">CreatedDate</th>
<th scope="col">Del</th>
</tr>
</thead>
@foreach (var student in Model)
{
<tr>
<td>
@student.StudentNo
</td>
<td>
@student.FullName
</td>
<td>
@Convert.ToDateTime(@student.Birthday).ToString("dd/MM/yyyy")
</td>
<td>
@student.Address
</td>
<td>
@student.UserName
</td>
<td>
@student.Email
</td>
<td>
@student.Mobile
</td>
<td>
@string.Format("{0:dd MMMM yyyy}",@student.CreatedDate)
</td>
<td>
<a onclick="DeleteStudent(@student.StudentID);" class="btn btn-danger small">Delete</a>
</td>
</tr>
}
@Convert.ToDateTime(@student.CreatedDate).ToString("dd/MM/yyyy")
@string.Format("{0:dd MMMM yyyy}",@student.CreatedDate)
https://localhost:44382/students/allstudent

<link href="~/lib/bootstrap/dist/css/bootstrap.css.map" rel="stylesheet" />
CREATE PROCEDURE [dbo].[ReadStudent]
AS
BEGIN
Select * From Students
End
…
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sql = "ReadStudent";
SqlCommand command = new SqlCommand(sql, connection);
command.CommandType = CommandType.StoredProcedure;
using (SqlDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
//…
}
}
connection.Close();
}
…
public IActionResult AllStudent()
{
List<StudentsModel> StudentsModelList = new List<StudentsModel>();
try
{
string connectionString = Configuration["ConnectionStrings:DefaultConnection"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataTable dataTable = new DataTable();
string sql = "Select * From Students";
SqlCommand command = new SqlCommand(sql, connection);
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
// filling records to DataTable
dataAdapter.Fill(dataTable);
foreach (DataRow item in dataTable.Rows)
{
StudentsModelList.Add(new StudentsModel
{
StudentID = Convert.ToInt32(item["StudentId"]),
StudentNo = Convert.ToString(item["StudentNo"]),
FullName = Convert.ToString(item["FullName"]),
Birthday = Convert.ToDateTime(item["Birthday"]),
Address = Convert.ToString(item["Address"]),
UserName = Convert.ToString(item["Address"]),
Email = Convert.ToString(item["Email"]),
Mobile = Convert.ToString(item["Mobile"]),
CreatedDate = Convert.ToDateTime(item["CreatedDate"]),
});
}
}
}
catch (Exception ex)
{
}
finally
{
}
return View(StudentsModelList);
}
public IActionResult AllStudent()
{
List<StudentsModel> StudentsModelList = new List<StudentsModel>();
try
{
string connectionString = Configuration["ConnectionStrings:DefaultConnection"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataTable dataTable = new DataTable();
string sql = "ReadStudent";
SqlCommand command = new SqlCommand(sql, connection);
command.CommandType = CommandType.StoredProcedure;
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
// filling records to DataTable
dataAdapter.Fill(dataTable);
foreach (DataRow item in dataTable.Rows)
{
StudentsModelList.Add(new StudentsModel
{
StudentID = Convert.ToInt32(item["StudentId"]),
StudentNo = Convert.ToString(item["StudentNo"]),
FullName = Convert.ToString(item["FullName"]),
Birthday = Convert.ToDateTime(item["Birthday"]),
Address = Convert.ToString(item["Address"]),
UserName = Convert.ToString(item["Address"]),
Email = Convert.ToString(item["Email"]),
Mobile = Convert.ToString(item["Mobile"]),
CreatedDate = Convert.ToDateTime(item["CreatedDate"]),
});
}
}
}
catch (Exception ex)
{
}
finally
{
}
return View(StudentsModelList);
}
اترك تعليقك