My first stored procedure looks like this:
Use [Stock]
Go
Create Proc Get_Orders
AS
SELECT [Number_Order]
,[Date_Order]
,[FullName]
,[Location]
FROM [Order]
and my second stored procedure looks like this:
USE [Stock]
GO
ALTER Proc [dbo].[Get_Order_Res]
AS
SELECT i.Name_Item
,od.[ID_Order]
,od.[Project]
,od.[Length]
,od.[Width]
,od.[Quantity]
,od.[Weight]
,od.[Supplier]
,od.[GDS_Name]
,od.[GDS_Date]
,od.[WorkshopName]
,od.[WorkshopDate]
,od.[ReservedQty]
FROM OdredDetails od
INNER JOIN ItemQuantity iq
ON iq.ID_ItemQte = od.ID_ItemQte
INNER JOIN item i
ON i.ID_Item = iq.ID_Item
INNER JOIN [Order] ord
ON ord.Number_Order=od.ID_Order
where ord.[Location]='PRODUCTION'
in my c# code, I use this code to get data from a stored procedure
public DataTable Get_Order_Res()
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DataTable dt = new DataTable();
dt = DAL.SelectData("Get_Order_Res", null);
DAL.Close();
return dt;
}
public DataTable Get_Orders()
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DataTable dt = new DataTable();
dt = DAL.SelectData("Get_Orders", null);
DAL.Close();
return dt;
}
and in my form i use this code to create master detail view
public partial class FRM_Reserved : Form
{
BL.CLS_Order ord = new BL.CLS_Order();
DataTable master = new DataTable();
DataTable details = new DataTable();
DataSet dataSet = new DataSet();
public FRM_Reserved()
{
InitializeComponent();
master = ord.Get_Orders();
details = ord.Get_Order_Res();
dataSet.Tables.Add(master);
dataSet.Tables.Add(details);
dataSet.Relations.Add("OderDetails",
dataSet.Tables["master"].Columns["Number_Order"],
dataSet.Tables["details"].Columns["ID_Order"]);
gridControl3.DataSource = dataSet.Tables["master"];
but when i run the code i get error:Object reference not set to an instance of an object.
help me please,thanks in advance.
Since you havent given names to your data tables, hence when you are trying to access them then it returns null.
dataSet.Tables["master"] // this returns null
To fix this, give names to your data tables
DataTable master = new DataTable("master");
DataTable details = new DataTable("details");