Asp.net 通过从两个不同的表中选择数据绑定到网格?
我的数据库中有两个表,名为…Requests和Balance tracker,它们之间没有关系…但我想从两个表中选择数据并将其绑定到两个网格中 请求Asp.net 通过从两个不同的表中选择数据绑定到网格?,asp.net,sql-server-2008,c#-4.0,Asp.net,Sql Server 2008,C# 4.0,我的数据库中有两个表,名为…Requests和Balance tracker,它们之间没有关系…但我想从两个表中选择数据并将其绑定到两个网格中 请求 EmpID |EmpRqsts|EmpDescription|ApproverID 1 |asdfsb |sadbfsbdf |1 2 |asbfd |sjkfbsd |1 平衡跟踪器 EmpId|BalanceA
EmpID |EmpRqsts|EmpDescription|ApproverID
1 |asdfsb |sadbfsbdf |1
2 |asbfd |sjkfbsd |1
平衡跟踪器
EmpId|BalanceAmnt|LastUpdated
| 1 |5000 |sdfbk
| 2 |3000 |sjbfsh
员工表
EmpId|EmpName
1 |Anil
2 |Raghu
现在平衡跟踪器有了EmployeeTable的ForeignKey列。。。我想要的是从[Requests]的可清空[EmpRqsts]中选择[EmpName],从[Balance Tracker]中选择[BalanceAmnt][LastUpdate],并将其绑定到网格
这是我用来检索数据的存储过程
create procedure SP_GetEmployeeRequests
(@ApproverName varchar (50))
as
begin
select
EmployeeDetails.Emp_Username,
RequestDetails.Request_Amount,
RequestDetails.Request_description,
BalanceTracker.Balance_Amount,
BalanceTracker.LastApproval,
BalanceTracker.LastUdated
from
EmployeeDetails, RequestDetails, BalanceTracker
where
EmployeeDetails.Emp_ID = RequestDetails.Emp_ID
and BalanceTracker.Emp_ID = RequestDetails.Emp_ID
and RequestDetails.Approved_ID = (select Approved_ID
from ApprovalDetails
where Approved_By = @ApproverName)
end
在这里之前一切都很好,但是这个查询只检索列名。但不是表的值。有人能帮我解决我的问题吗?我解决了我的答案,感谢所有试图帮助我的人。我发布了我的答案,以便对任何需要帮助的人都有帮助
CREATE procedure SP_GetEmployeeRequests
(
@ApproverName varchar (50)
)
AS
BEGIN
SELECT PTS_Employee.Emp_Username, PTS_Requests.Request_RequestedAmount, PTS_Requests.Request_Description, PTS_BalanceTracker.Balance_BalanceAmount, PTS_BalanceTracker.Balance_LastApproval, PTS_BalanceTracker.Balance_LastUpdated
FROM PTS_Employee JOIN PTS_Requests ON PTS_Employee.Emp_ID = PTS_Requests.Emp_ID
JOIN PTS_BalanceTracker ON PTS_BalanceTracker.Emp_ID = PTS_Requests.Emp_ID
JOIN PTS_Approval ON PTS_Approval.Approval_ApprovedID = PTS_Requests.Approval_ApprovedID
WHERE PTS_Approval.Approval_ApprovedBY = @ApproverName
END
GO
我解决了我的答案,感谢所有试图帮助我的人…我正在发布我的答案,以便它能完全帮助任何需要帮助的人
CREATE procedure SP_GetEmployeeRequests
(
@ApproverName varchar (50)
)
AS
BEGIN
SELECT PTS_Employee.Emp_Username, PTS_Requests.Request_RequestedAmount, PTS_Requests.Request_Description, PTS_BalanceTracker.Balance_BalanceAmount, PTS_BalanceTracker.Balance_LastApproval, PTS_BalanceTracker.Balance_LastUpdated
FROM PTS_Employee JOIN PTS_Requests ON PTS_Employee.Emp_ID = PTS_Requests.Emp_ID
JOIN PTS_BalanceTracker ON PTS_BalanceTracker.Emp_ID = PTS_Requests.Emp_ID
JOIN PTS_Approval ON PTS_Approval.Approval_ApprovedID = PTS_Requests.Approval_ApprovedID
WHERE PTS_Approval.Approval_ApprovedBY = @ApproverName
END
GO
试试这个:
SqlDataAdapter da = new SqlDataAdapter("select t1.EmpName,t2.EmpRqsts,t3.BalanceAmnt,t3.LastUpdated from EmpTable as t1,Requests as t2,Balance_tracker as t3 where t1.sno=t2.sno and t1.sno=t3.sno", conn);
DataTable dt1 = new DataTable();
da.Fill(dt1);
GridView1.DataSource = dt1;
GridView1.DataBind();
试试这个:
SqlDataAdapter da = new SqlDataAdapter("select t1.EmpName,t2.EmpRqsts,t3.BalanceAmnt,t3.LastUpdated from EmpTable as t1,Requests as t2,Balance_tracker as t3 where t1.sno=t2.sno and t1.sno=t3.sno", conn);
DataTable dt1 = new DataTable();
da.Fill(dt1);
GridView1.DataSource = dt1;
GridView1.DataBind();
为什么没有EmpId?它存储的是名称而不是FK。两者都可以通过名称连接吗?否,员工通过文本框手动插入请求选项卡中的Empname。否,员工通过文本框手动插入请求选项卡中的Empname。那么,由于您从其他表中获取所有信息,因此如何需要Employee表?您希望在请求和余额跟踪器之间进行交叉连接,因为它们彼此不相关?请看,我有其他与employee表相关的表…现在有一个基于登录名的审批人,数据应该绑定到网格…如果ID=1的审批人登录,附加到其ID的请求应该绑定到网格为什么请求没有EmpId?它存储的是名称而不是FK。两者都可以通过名称连接吗?否,员工通过文本框手动插入请求选项卡中的Empname。否,员工通过文本框手动插入请求选项卡中的Empname。那么,由于您从其他表中获取所有信息,因此如何需要Employee表?您想在请求和余额跟踪器之间建立交叉连接,因为它们彼此不相关?请看,我有其他与员工表相关的表…现在有一个基于登录名的审批人,数据应绑定到网格…如果ID=1的审批人登录,则附加到其ID的请求应绑定到网格