1
我填充下面的DataGrid從我的SQL數據庫與名稱的字段或屬性沒有被選擇的數據源
<asp:DataGrid ID="dgUsers" BackColor="#F7F9FD" AutoGenerateColumns="false"
OnItemCommand="dgItemCommand" runat="server" >
<Columns>
<asp:BoundColumn HeaderText="Username" DataField="Username" />
<asp:BoundColumn HeaderText="First Name" DataField="FirstName" />
<asp:BoundColumn HeaderText="Last Name" DataField="LastName" />
<asp:TemplateColumn HeaderText="Details">
<ItemTemplate>
<asp:Button runat="server" Text="Open" CommandName="OpenDetails"
CommandArgument='<%# Eval("Username")%>' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
我收到來自兩個不同的表在我的數據庫中的信息數據中發現, FirstName和LastName來自一個表,而用戶名來自不同的表。
cmd = new SqlCommand("storedProcedure", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("Email", email);
cmd.Parameters.AddWithValue("FirstName", first);
cmd.Parameters.AddWithValue("LastName", last);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
dgUsers.DataSource = ds;
dgUsers.DataBind();
我得到的錯誤是名稱爲'名字'的字段或屬性在所選的數據源中找不到。所以它似乎正確得到用戶名,但不是名字或姓氏。我有三倍檢查,我沒有錯別字,我的表中的字段確實是名字和姓氏,以及我的存儲過程,我在下面顯示。有沒有人看到我可能在這裏做錯了?提前感謝任何幫助!
@Email varchar(MAX),
@FirstName varchar(20),
@LastName varchar(35)
AS
SELECT Username
From AgentLogin.dbo.AgentLogin
WHERE AgentNumID IN (SELECT AgentNumID FROM AgentLogin.dbo.AgentDetail WHERE
((CHARINDEX(@FirstName, FirstName) != 0) OR (CHARINDEX(@LastName, LastName)
!= 0))) OR (CHARINDEX(@Email, Email) != 0)
SELECT FirstName, LastName
From AgentLogin.dbo.AgentDetail
WHERE AgentNumID IN (SELECT AgentNumID FROM AgentLogin.dbo.AgentLogin WHERE
(CHARINDEX(@Email, Email) != 0)) OR ((CHARINDEX(@FirstName, FirstName) != 0)
OR (CHARINDEX(@LastName, LastName) != 0))