الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في عرض البيانات في Datagridview ان استعمل

مغلق
بدأه زكيري عبد العالي في 5 سبتمبر 2007 · 2 رد · 1,043 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي مشكلة في عرض البيانات في datagridview ان استعمل datareader

OleDbDataReader T_Fournisseur = SqlFounisseur.ExecuteSelectRequest("select * from  Fournisseur ");

	public OleDbDataReader ExecuteSelectRequest(string SQLRequest)
		{
			if (connection != null && connection.State == System.Data.ConnectionState.Open)
			{
				if (reader == null)
				{
					OleDbCommand command = new OleDbCommand(SQLRequest, connection);

					try
					{
						reader = command.ExecuteReader();
					}
					catch (Exception ex)
					{
						throw new BDManagerException(ex.Message);
					}

					return reader;
				}
				else
					throw new BDManagerException("Impossible d'exécuter la requête car le DataReader de la requête précédente est demeuré ouvert.");
			}
			else
				throw new BDManagerException("Impossible d'exécuter la requête car la connexion est fermée.");
		}

استعملت الخاصية DataSource لربط datareader مع datagrid

Grid_ListFournisseur.DataSource = T_Fournisseur;

لكن لا نتيجة تضهر

وجدت في بعض الدروس الخاصة ب applicationweb انه يجب اضافة

Grid_ListFournisseur.DataBind

فما العمل في application winform

شكرا

#2
//while (T_Fournisseur.Read())
			//{
			//	MessageBox.Show(T_Fournisseur["RaisonSociale"].ToString());
			//}

بالمتاسبة لا اريد عمل بوكل while ولا for اريد تعيلمة واحدة مثل

Grid_ListFournisseur.DataBind

#3
  public DataSet ConvertDataReaderToDataSet( OleDbDataReader reader , String TableName) 
		{
		  DataSet dataS = new DataSet();
		  DataTable schemaTable = reader.GetSchemaTable();
		  DataTable dataTable = new DataTable(TableName);
			foreach (DataRow DR in schemaTable.Rows)
			{
			  try
				{
				  dataTable.Columns.Add(DR["ColumnName"].ToString(),DR["DataType"].GetType());
				}

			catch (Exception ex)
				{
				  dataTable.Columns.Add(DR["ColumnName"].ToString() + "2", DR["DataType"].GetType());
				}
			}
			dataS.Tables.Add(dataTable);

			while (reader.Read())
			{
				DataRow dataRow  = dataTable.NewRow();
				foreach (DataRow DR in schemaTable.Rows)
				{
					dataRow[DR["ColumnName"].ToString()] = reader.GetValue(Convert.ToInt32(DR[1]));

					if(reader.GetValue(Convert.ToInt32(DR[1])).ToString() == "System.String")
				{
					dataRow[DR["ColumnName"].ToString()] = reader.GetString(Convert.ToInt32(DR[1]));
				}
				}
			dataTable.Rows.Add(dataRow);
			}
			return dataS;
		}

حاولت بهدا ولا نتيجة

 Public Function ConvertDataReaderToDataSet(ByVal reader As SqlDataReader, Optional ByVal TableName As String = Nothing) As DataSet
		Dim dataS As New DataSet
		Dim schemaTable As DataTable = reader.GetSchemaTable()
		Dim dataTable As New DataTable(TableName)

		For Each DR As DataRow In schemaTable.Rows
			Try
				dataTable.Columns.Add(CType(DR("ColumnName"), String), CType(DR("DataType"), Type))
			Catch ex As Exception
				dataTable.Columns.Add(CType(DR("ColumnName"), String) & "2", CType(DR("DataType"), Type))
			End Try
		Next
		dataS.Tables.Add(dataTable)

		Do While reader.Read()
			Dim dataRow As DataRow = dataTable.NewRow()
			For Each DR As DataRow In schemaTable.Rows
				dataRow.Item(CType(dr("ColumnName"), String)) = reader.GetValue(CType(dr(1), Int32))
				If reader.GetValue(CType(dr(1), Int32)).GetType.ToString = "System.String" Then dataRow.Item(CType(dr("ColumnName"), String)) = reader.GetString(CType(dr(1), Int32)).TrimEnd
			Next
			dataTable.Rows.Add(dataRow)
		Loop
		Return dataS

	End Function

هذا الموضوع مغلق.

مواضيع مشابهة