У меня есть SqlDataReader
из команды SQL Server и хочу я, чтобы показать в DataDridView
с этим кодом:SqlDataReader не может быть загружен в таблицу
SqlDataReader dr=product.RetriveDetailsOfOneProduct();
DataTable dt = new DataTable();
dt.Load(dr);
DataGrid.DataSource = dr;
Я проверил его с помощью контрольных точек, что мой SqlDataReader
имеет строки, но когда загрузив его в DataTable
, он пуст (без строк)
Как это исправить?
И это функция моего класса DATAACCESS где SqlDataReader
возвращается:
internal SqlDataReader RetriveDetailsOfOneProduct(product product)
{
string RetriveQuery = string.Format("SElect person.F_Name as N'Name ',person.L_Name as N'LastName',borrow.Person_Identity as N'Identity',borrow.T_Date as 'Date1', borrow.B_Date as 'Date2' from BorrowTable borrow Inner join PersonTable person on borrow.Product_Name=N'{0}' and person.Person_identity=borrow.Person_Identity ", product.Productname);
SqlCommand cmd = new SqlCommand(RetriveQuery, conn);
// conn.Close(); //if i close the Connection(conn) it runs into error
return(cmd.ExecuteReader());
}
вы должны убедиться, что вы свяжете данные в DataGrid, а только настройки источника не достаточно хорошо – MethodMan
Я хотел бы предложить портирование запрос по хранимой процедуре, Что ж. будет легче поддерживать и пытаться редактировать динамический sql в вашем коде. также оберните ваши объекты SqlCommand вокруг 'using() {}' для автоматического удаления – MethodMan
спасибо за все, что вы работали good.i сделал ошибку, назначив dt DataGrid, теперь он работает хорошо – ako