我的第一個存儲過程如下所示:Use [Stock]GoCreate Proc Get_OrdersASSELECT [Number_Order] ,[Date_Order] ,[FullName] ,[Location]FROM [Order]我的第二個存儲過程如下所示:USE [Stock]GOALTER Proc [dbo].[Get_Order_Res]ASSELECT 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'在我的 c# 代碼中,我使用此代碼從存儲過程中獲取數據 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; }在我的表單中,我使用此代碼創(chuàng)建主詳細信息視圖 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"];但是當我運行代碼時,我得到錯誤:未將對象引用設置為對象的實例。
1 回答

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
由于您沒有為數據表命名,因此當您嘗試訪問它們時,它會返回 null。
dataSet.Tables["master"] // this returns null
要解決此問題,請為您的數據表命名
DataTable master = new DataTable("master"); DataTable details = new DataTable("details");
- 1 回答
- 0 關注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消