失敗,我有以下表中數據的基礎上(CustomerType,客戶和公司):無法檢索sql查詢中的數據。作品在SQL Server中,但在Visual Studio
在asp.net,我想寫一個這樣的查詢得到一些符合標準的數據。我的SQL查詢如下:
SELECT co.[CompanyID], [CompanyName], co.[Address], co.[Phone], co.[Email],
co.[WebPage]
FROM [Company] AS co INNER JOIN [Customer] AS cu ON
co.[CompanyID] = cu.[CompanyID]
INNER JOIN [CustomerType] AS cut ON cu.[CustTypeID] = cut.[CustTypeID]
WHERE co.[CompanyID] = @CompanyID
AND cu.[CustTypeID] = @CustTypeID
AND cu.[CustTypeID] <> 11
我從查詢字符串中檢索「CompnayID」和「CustTypeID」。但是當我測試在Visual Studio這個查詢,就引起了一個錯誤,說「失敗,使約束。一個或多個行包含違反非空,唯一或FK約束」
如何過,當我運行相同在SQL服務器管理工作室中查詢它正確地檢索數據。這是爲什麼?
這是我在SQL Server Management Studio中寫道查詢:
SELECT co.[CompanyID], [CompanyName], co.[Address], co.[Phone], co.[Email],
co.[WebPage]
FROM [Company] AS co INNER JOIN [Customer] AS cu
ON co. [CompanyID] = cu.[CompanyID]
INNER JOIN [CustomerType] AS cut ON cu.[CustTypeID] = cut.[CustTypeID]
WHERE co.[CompanyID] = 10001
AND cu.[CustTypeID] = 12
AND cu.[CustTypeID] <> 11
更新::
我甚至嘗試簡單的查詢AS:
SELECT co.[CompanyID], [CompanyName]
FROM [Company] AS co INNER JOIN [Customer] AS cu
ON co. [CompanyID] = cu.[CompanyID]
這其中也導致同樣的問題,但在SQL Server中工作。
更新1: 通過添加「和cu.CustID = @CustID」,SQL查詢工作正常。但我仍然不明白爲什麼我以前的查詢不起作用?有人可以解釋嗎?
這是我的ASP.NET代碼:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="CompanyID" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="CompanyID" HeaderText="CompanyID"
InsertVisible="False" ReadOnly="True" SortExpression="CompanyID" />
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName"
SortExpression="CompanyName" />
<asp:BoundField DataField="Address" HeaderText="Address"
SortExpression="Address" />
<asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:BoundField DataField="WebPage" HeaderText="WebPage"
SortExpression="WebPage" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ICT_IdealComputerConnectionString %>"
SelectCommand="SELECT co.CompanyID, co.CompanyName, co.Address, co.Phone,
co.Email, co.WebPage
FROM Customer AS cu INNER JOIN CustomerType AS cut ON cu.CustTypeID =
Cut.CustTypeID
INNER JOIN Company AS co ON cu.CompanyID = co.CompanyID
AND cu.CustTypeID = @CustTypeID AND co.CompanyID = @CompanyID AND cu.CustID =
@CustID AND cu.CustTypeID <> 11">
<SelectParameters>
<asp:QueryStringParameter Name="CustTypeID" QueryStringField="CustTypeID" />
<asp:QueryStringParameter Name="CompanyID" QueryStringField="CompanyID" />
<asp:QueryStringParameter Name="CustID" QueryStringField="CustID" />
</SelectParameters>
</asp:SqlDataSource>
先嚐試一個更簡單的查詢,以確保一切正常:從公司 – 2012-02-29 15:52:23
選擇頂部10 *是的這個「從公司選擇最佳10 *」的作品,我試着像「選擇合作[公司ID],[公司名稱]公司] AS co INNER JOIN [客戶] AS cu ON co。[CompanyID] = cu。[CompanyID]「。即使這個連接在Visual Studio中失敗,但在Sql Server中工作 – Sas 2012-02-29 15:58:20
你用什麼來做你的.NET數據訪問;實體框架,輸入數據集,原始ADO.NET?你可以顯示你正在嘗試運行的.NET代碼嗎? – JamieSee 2012-02-29 16:21:49