|
قسمت سوم در ادامه به شیوه استفاده از SqlDataReader در C#.Net میپردازیم . این کار را با یک مثال اغاز میکنیم . اینک این تابع را به کلاس اولیه اضافه کنید . public Boolean showdata(System.Windows.Forms.DataGridView DataGridShow) { Boolean Flag = false; try { DataGridShow.Rows.Clear(); SqlConnection iConnection = new SqlConnection(SqlConString); SqlCommand iCommand; iConnection.Open(); iCommand = new SqlCommand(" select * from TblTest ", iConnection); SqlDataReader iReader = iCommand.ExecuteReader(); ArrayList iList = new ArrayList(); if (iReader.HasRows) { while (iReader.Read()) { string[] iRow = new string[] { iReader["name"].ToString()}; iList.Add(iRow); } foreach (string[] rowArray in iList) DataGridShow.Rows.Add(rowArray); iReader.Close(); } iConnection.Close(); Flag = true; } catch { Flag = false; } return Flag; } در اینجا ما یک متغیر را برای کار با SqlDataReader تعریف کردیم SqlDataReader iReader سپس با دستور iCommand.ExecuteReader دستور را اجرا کرده و نتیجه را در iReader قرار میدهیم . با دستور if (iReader.HasRows) بررسی کردیم اگر اطلاعاتی درون iReader بود وارد شرط بعدی شود در صورتی که اطلاعاتی درون ان نباشد این شرط اجرا نمیشود . در خط بعد با استفاده از دستور
while (iReader.Read())
محتویات iReader را پیمایش میکنیم . محتویات را درون یک ارایه قرار میدهیم . string[] iRow = new string[] { iReader["name"].ToString()}; با این کار یک ارایه یک بعدی تعریف میشود که فقط خانه شماره 1 ان دارای مقادیر میباشد . و فیلد name را از iReader درون ان قرار میدهیم . و پس از پایان پذیرفتن شرط while ما اطلاعات را درون DataGridView قرار دادیم . برای این کار کافی است که با استفاده از دستور foreach (string[] rowArray in iList) DataGridShow.Rows.Add(rowArray); با این کار ما با پیمایش ArrayList در دستور فوق این ارایه را در DataGridShow اضافه کردیم . این روش اول میباشد . روش دوم به شکل زیر است . کافی است که برای ان یک تابع بنویسیم . پس کد های زیر را در کلاس مورد نظر کپی کنید . برای این روش ما از SqlDataAdapter استفاده میکنیم
public void Showdata(DataGridView DataGridMe) { string Comand = "select * from tbltest"; SqlConnection Con = new SqlConnection(); Con.ConnectionString = SqlConString; SqlDataAdapter adabter = new SqlDataAdapter(); DataSet datas = new DataSet(); adabter.SelectCommand = new SqlCommand(); adabter.SelectCommand.Connection = Con; adabter.SelectCommand.CommandText = Comand; adabter.SelectCommand.CommandType = CommandType.Text; Con.Open(); adabter.Fill(datas, TableName); Con.Close(); DataGridMe.DataSource = datas.Tables[TableName]; } با دستور SqlDataAdapter adabter = new SqlDataAdapter(); یک متغیر از نوع SqlDataAdapter میسازیم . چون اطلاعات بازگشتی از نوع DataSet میباشند ما یک متغر نیز برای این کار ساختیم . در خط بعدی ما یک SqlCommand جدید برای کار تعریف کردیم adabter.SelectCommand = new SqlCommand(); و در خطوط بعدی نیز SqlConnection را به adabter نصبت دادیم و دستور SQl را به ان دادیم و نوع ان را نیزCommandType.Text قرار دادیم . انگاه با دستور adabter.Fill(datas, TableName); دستورات SQl را اجرا میکنیم . حالا datas ما که در دستور adabter.Fill مقدار دهی شده و از اطلاعات پر شده را به دستور زیر به DataGridMe انتصاب میدهیم .
DataGridMe.DataSource = datas.Tables[TableName]; TableName ما نام جدول در بانک میباشد .
تعداد بازدید : 137 |
نوشتده شده توسط admin در تاریخ 1388/05/15 در ساعت 14:20
|