我正在为Doodle Creatures创建一个作弊/粉丝页面。我已经使页面工作,但我使用内联SQL而不是存储过程。我已经尝试制作我的Select语句存储过程,但图像信息没有被正确解析。
以下是使用存储过程的SQL数据源:
<asp:SqlDataSource ID="SQL_CreatureCombos" runat="server"
ConnectionString='<%$ ConnectionStrings:KJAI_DBConnectionString %>'
SelectCommand="SelectCreatureCombos"
SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
这是我现在的aspx页面:
<asp:SqlDataSource ID="SQL_CreatureCombos" runat="server"
ConnectionString='<%$ ConnectionStrings:KJAI_DBConnectionString %>'
SelectCommand="SELECT [Animal1].[AnimalImage] AS AnimalImage1, [Animal2].[AnimalImage] AS AnimalImage2, [Animal1].[AnimalImageAltText] AS AltText1, [Animal2].[AnimalImageAltText] AS AltText2, [Animal1].[AnimalImageToolTip] AS ToolTip1, [Animal2].[AnimalImageToolTip] AS ToolTip2,
[Genes].[GeneImg], [Genes].[GeneAltText], [Genes].[GeneToolTip] FROM [CreatureCombos]
INNER JOIN [Animals] AS Animal1
ON [CreatureCombos].[NewCreatureID] = Animal1.[AnimalId]
INNER JOIN [Animals] AS Animal2
ON [CreatureCombos].[ComboAnimalID] = Animal2 .[AnimalId]
INNER JOIN [Genes] ON [CreatureCombos].[ComboGeneID] = [Genes].[GeneId]
ORDER BY AltText2;">
</asp:SqlDataSource>
<asp:DataList ID="DL_CreatureCombos" runat="server"
EnableViewState="false" DataSourceID="SQL_CreatureCombos"
RepeatColumns="6" RepeatDirection="Horizontal">
<ItemTemplate>
<asp:Image ID="IMG_ComboAnimal" runat="server"
ImageUrl='<%# Bind("AnimalImage2")%>'
AlternateText='<%# Bind("AltText2")%>'
ToolTip='<%# Bind("ToolTip2")%>' Width="25%" />+
<asp:Image ID="IMG_ComboGene" runat="server"
ImageUrl='<%# Bind("GeneImg")%>'
AlternateText='<%# Bind("GeneAltText")%>'
ToolTip='<%# Bind("GeneToolTip")%>' Width="25%" />=
<asp:Image ID="IMG_NewAnimal" runat="server"
ImageUrl='<%# Bind("AnimalImage1")%>'
AlternateText='<%# Bind("AltText1")%>'
ToolTip='<%# Bind("ToolTip1")%>' Width="25%" />
</ItemTemplate>
</asp:DataList>
这是我的动物和CreatureCombos表:
CREATE TABLE [dbo].[Animals]
(
[AnimalId] INT IDENTITY (1, 1) NOT NULL,
[Animal] VARCHAR (30) NOT NULL,
[GroupID] INT NOT NULL,
[AnimalImage] VARCHAR (MAX) NOT NULL,
[AnimalImageAltText] VARCHAR (50) NULL,
[AnimalImageToolTip] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([AnimalId] ASC),
FOREIGN KEY ([GroupID]) REFERENCES [dbo].[Groups] ([GroupId])
);
我使用VARCHAR(MAX)
,因为我在某处读到微软将在不久的将来摆脱Image
数据类型。我想确保在发布新的SQL Server版本时不会更改我的数据。
CREATE TABLE [dbo].[CreatureCombos]
(
[CreatureId] INT IDENTITY (1, 1) NOT NULL,
[NewCreatureID] INT NOT NULL,
[ComboAnimalID] INT NOT NULL,
[ComboGeneID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([CreatureId] ASC),
FOREIGN KEY ([ComboGeneID]) REFERENCES [dbo].[Genes] ([GeneId]),
FOREIGN KEY ([ComboAnimalID]) REFERENCES [dbo].[Animals] ([AnimalId]),
FOREIGN KEY ([NewCreatureID]) REFERENCES [dbo].[Animals] ([AnimalId])
);
任何帮助将不胜感激!我无法相信它不再工作了!! : - (
编辑:我用内部SQL修复了问题;我不应该刷新我的数据主义者。它用标签替换了我的图像控件。
答案 0 :(得分:0)
我错了;我将所有内联SQL放入存储过程中,页面完美运行!我认为我的datalist刷新了自己并创建了标签,当我第一次封装我的SQL代码并调用其存储过程时应该有图像。我的错。 : - )