Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用计时器控件调用幻灯片中的图像_C#_Html_Sql_Asp.net_Timer - Fatal编程技术网

C# 使用计时器控件调用幻灯片中的图像

C# 使用计时器控件调用幻灯片中的图像,c#,html,sql,asp.net,timer,C#,Html,Sql,Asp.net,Timer,我有两组名为Div1和Div2的图像,它们必须在幻灯片中调用。情况是这样的, 对于前七天,我希望在幻灯片中显示第一组Div的图像,当这七天结束后,应显示下一组Div的图像。我知道可以通过定时器控制。但我到现在还没用过 直到现在还没有代码可以共享,正如我在表格的幻灯片中所说的那样。如果你还需要什么,一定要告诉我 请帮忙。这样我就可以使用它了 任何帮助都是值得的 我的幻灯片代码如下:- protected void Page_Load(object sender, EventArgs e)

我有两组名为Div1和Div2的图像,它们必须在幻灯片中调用。情况是这样的,

对于前七天,我希望在幻灯片中显示第一组Div的图像,当这七天结束后,应显示下一组Div的图像。我知道可以通过定时器控制。但我到现在还没用过

直到现在还没有代码可以共享,正如我在表格的幻灯片中所说的那样。如果你还需要什么,一定要告诉我

请帮忙。这样我就可以使用它了

任何帮助都是值得的

我的幻灯片代码如下:-

 protected void Page_Load(object sender, EventArgs e) 
    { 
            SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultSQLConnectionString"].ConnectionString); 
            SqlDataAdapter da = new SqlDataAdapter("SELECT Name FROM tblImages", conn); 
            DataTable dt = new DataTable(); 
            da.Fill(dt); 
            rptImages.DataSource = dt; 
            rptImages.DataBind(); 
            Page.Header.DataBind(); 
    }
aspx代码:-

 <div class="imgbanner-login" style="margin-bottom: 10px;">
        <div class="img-login-ca">

            <div class="index-img-banner">
                <div id="slider" class="nivoSlider">
                    <asp:Repeater ID="rptImages" runat="server">
                        <ItemTemplate>
                            <li style="list-style: none;">
                                <img alt="" src='<%# Eval("Name") %>' />
                            </li>
                        </ItemTemplate>
                    </asp:Repeater>
                </div>
            </div>

            <div class="login">
                <uc1:indexrightpanel runat="server" id="indexRightPanel" />
            </div>
        </div>

    </div>

  • ' />
  • 另请参见数据库结构:-

    未选中ID int

    名称nvarchar(最大值)已选中

    [订单]整数已检查


    名称列包含图像路径

    这里是我设置的一个小数据库,用于演示如何处理此要求:

    CREATE TABLE [dbo].[SetTable] (
        [SetId]   INT          IDENTITY (1, 1) NOT NULL,
        [SetName] VARCHAR (10) NOT NULL,
        PRIMARY KEY CLUSTERED ([SetId] ASC)
    );
    
    Go
    
    INSERT INTO SetTable values ('A'), ('B');
    
    GO
    
    CREATE TABLE [dbo].[SetShowLog] (
        [Id]        INT      IDENTITY (1, 1) NOT NULL,
        [SetId]     INT      NOT NULL,
        [LastShown] DATETIME DEFAULT (getdate()) NOT NULL,
        PRIMARY KEY CLUSTERED ([Id] ASC),
        CONSTRAINT [FK_SetShowLog_SetTable] FOREIGN KEY ([SetId]) REFERENCES [dbo].[SetTable] ([SetId])
    );
    
    Go
    
    CREATE TABLE [dbo].[ImageTable] (
        [Id]    INT          IDENTITY (1, 1) NOT NULL,
        [Name]  VARCHAR (25) NULL,
        [SetId] INT          NULL,
        PRIMARY KEY CLUSTERED ([Id] ASC),
        CONSTRAINT [FK_ImageTable_SetTable] FOREIGN KEY ([SetId]) REFERENCES [dbo].[SetTable] ([SetId])
    );
    
    Go
    
    Insert into ImageTable ([Name], [SetId]) values
        ('image1.jpg', 1),
        ('image2.jpg', 1),
        ('image3.jpg', 2),
        ('image4.jpg', 2);
    
    go
    
    CREATE PROCEDURE [dbo].[GetImages]  
    AS
        declare @logId int;
    
        --get the last shown set
        select @logid = IDENT_CURRENT('SetShowLog');
    
        declare @setid int;
        declare @lastShowDate datetime;
        declare @now datetime;
    
        set @now = GETDATE();
    
        select 
            @setid = setid, 
            @lastShowDate = LastShown 
        from SetShowLog 
        where Id = @logId;
    
        if @@ROWCOUNT = 0 
            begin
                --this is first insert into the log table
                insert into SetShowLog(SetId) values (1);
                set @setid = 1; --we show set A as default
            end
        else
            begin
                if( DATEDIFF(dd, @lastShowDate, @now) > 7 ) --seven day check
                begin
                    --change the set
                    select @setid = case @setid when 1 then 2 
                        when 2 then 1 end;
                    --update log
                    insert into SetShowLog(SetId) values (@setid);
                end
            end --//end of @@rowcount check
        select * from ImageTable where SetId = @setid;
    RETURN 0
    
    您可以在visual studio中启动一个新的数据库文件并运行脚本来初始化数据库…检查存储的过程
    GetImages
    实现


    这只允许您根据需要查询图像。您可以在计时器回发中重复使用代码本身,只需调用存储的进程。

    我不打算编写任何代码,但一个简单的解决方案是在某个地方设置startdate。你先做几天的datediff,然后是mod 14,低于7的是第一周,高于7的是第二周,根据该条件进行选择

    以下是文档:。阅读它,试着为你的案子做点什么,然后回来。@mybirthname:谢谢你的推荐,我一定会试试:)7天!!!就像在浏览器中一样,预计会保持打开状态那么长时间@DeoWalk:客户的要求是7天,之后是下一组图像。有可能吗,请帮忙。浏览器部分不是他们的问题。我们只需要让它运行7天,在下一组图像之后,浏览器程序必须在所有7天内24小时打开?是的。在计时器触发的事件中,您需要编写您在页面加载中编写的代码…仅编写绑定中继器的部分。我想你也可以为它设置一个很高的间隔…你的SelectCommand应该用来查询存储过程的结果,而不是简单的sql查询…你的意思是说我的其余代码很好,只需要添加如下过程:-
    SqlDataAdapter da=newsqldataadapter(“GetImages”,conn)如果您不确定如何在存储过程中使用SelectCommand,请查看您在尝试使用该命令时遇到了什么问题。。。?