【发布时间】:2013-01-18 16:52:06
【问题描述】:
很难找到正确的问题主题。好吧,让我详细说明一下。我正在制作一个条形码生成器简单的 webapp。这是给我们的仓库团队的。
我创建了一个名为SqlComm 的类,我在其中处理所有与SQL 连接相关的事情。然后,我有一个查询(查询只是计算一个列,其中某个日期介于两者之间)。我使用查询来设置array 大小。稍后,它循环一个for 循环并将每个新标签添加到一个占位符。遗憾的是,占位符没有显示我刚刚创建的新标签。
c#(代码行为)
int index = 0;
int iLength = 0;
dt = SqlComm.SqlDataTable("SELECT [Lenum] FROM [SUIDonMachineTable] WHERE MachineTimestamp BETWEEN CONVERT(datetime,'"+strDayFrom+"', 121) AND CONVERT(datetime,'"+strDayTo+"', 121) AND Station ='NG08NX1BT'");
object obj = new object();
obj = SqlComm.SqlReturn("SELECT COUNT (Lenum) FROM [SUIDonMachineTable] WHERE MachineTimestamp BETWEEN CONVERT(datetime,'"+strDayFrom+"', 121) AND CONVERT(datetime,'"+strDayTo+"', 121) AND Station ='NG08NX1BT'");
iLength = Convert.ToInt32(obj);
Label[] labels = new Label[iLength];
for (index = 0; index == iLength; index++)
{
labels[index] = new Label();
labels[index].Text = (string)dt.Rows[index]["Lenum"];
PH.Controls.Add(labels[index]);
}
asp.net(占位符部分)
<asp:PlaceHolder ID="PH" runat="server"></asp:PlaceHolder>
【问题讨论】:
-
我所有的
labels[]数组都在获取数据。它只是不显示。可能是另一种方法就足够了(而不是使用占位符)。 -
这段代码你在哪里写的?点击某个按钮?你检查过浏览器上渲染的 html 吗?
-
@krshekhar 不,我没有。是的,它来自提交按钮。
-
鉴于您连接字符串的方式,您可能会对 SQL 注入持开放态度;在这种情况下,您应该使用参数化查询。此外,C# 有一个
DateTime类型,应该不需要转换。还有一件事 - 永远不要在 SQL Server 中使用BETWEEN和日期/时间/时间戳类型尤其是; this article 应该很容易解释。无论如何,这也是考虑日期/时间的错误方式。 -
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# asp.net sql sql-server-2008 datatable