我有一個網站寫在asp.net c#中。它使用的是sql 2005 db,但由於要求,我們確保它與sql 2000 db兼容。網站上的所有內容都轉換爲正常,除了一個使用存儲過程在頁面中讀取的頁面。 @Url_FK變量不再通過存儲過程傳遞給頁面。任何幫助都會有幫助。謝謝!數據類型問題SQL 2005到SQL 2000
表設計唯一的區別在於2005對於TOD_Text字段使用nvarchar(max)和2000 uses varchar(8000)。
存儲過程的代碼2005:
USE [CSF]
GO
/****** Object: StoredProcedure [dbo].[sp_test] Script Date: 12/06/2010 11:56:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[sp_test]
(
@Url_FK int
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT TOP (1) TOD_Text, Url_FK, TOD_Date
FROM CSF_TOD
WHERE (Url_FK = @Url_FK) AND (TOD_Date <= GETDATE())
ORDER BY TOD_Date DESC
END
存儲過程的代碼2000:
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_test]
(
@Url_FK int
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT TOP 1 TOD_Text, Url_FK, TOD_Date
FROM CSF_TOD
WHERE (Url_FK = @Url_FK) AND (TOD_Date <= GETDATE())
ORDER BY TOD_Date DESC
END
GO
----在aspx頁面調用代碼存儲過程
<asp:SqlDataSource ID="sds_TOD" runat="server" ConnectionString="<%$ ConnectionStrings:TESTConnectionString %>" SelectCommand="sp_TEST" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="Url_FK" Type="Int32" />
某處出現錯誤嗎?在ASP.NET中? SQL Server? – 2010-12-06 11:07:18
什麼是錯誤? SQL Server 2000和2005的表定義是不同的? – 2010-12-06 11:15:16
我看不出有什麼問題。請發佈您的錯誤代碼。 – 2010-12-06 11:19:04