【问题标题】:Stored procedure to format data from temp object and put in grid view从临时对象格式化数据并放入网格视图的存储过程
【发布时间】:2012-10-24 03:36:06
【问题描述】:

我是存储过程的新手。

我想更改从存储过程中获得的数据格式。比如某列返回一个字符串值20110918190154,我想改成2011/09/18 19:01:54

这就是我执行存储过程并返回DataTable的方式:

   storedProcCommand = new SqlCommand("GetPurchaseHistory", conn);
   storedProcCommand.CommandType = CommandType.StoredProcedure;
   storedProcCommand.Parameters.Add("@customerID", cCustomerID);
   adapter = new SqlDataAdapter(storedProcCommand);
   adapter.Fill(allData);

在GridView中显示数据如下:

   <asp:GridView ID="GridView_PurchaseHistory" runat="server" AutoGenerateColumns="False" >
   <Columns>    
   <asp:BoundField DataField="cTranDateTime" HeaderText="Latest Purchase Date" />
   <asp:BoundField DataField="cItemNo" HeaderText="Item Number" />
   <asp:BoundField DataField="cDescDef" HeaderText="Description" />
   <asp:BoundField DataField="fQty" HeaderText="Total Quantity" />
   </Columns> 
   </asp:GridView>

输出如下:

Latest Purchase Date
20121007193111
20120130171010
20110918190154

我已经编写了子字符串的代码并更改了一次接收 1 个字符串的格式。我想知道是否无论如何我可以将日期存储在临时对象中并相应地更改其格式。或者我是否可以在显示之前进行更改。

非常感谢.. 任何建议表示赞赏。

【问题讨论】:

  • 什么 RDBMS?!?!? 诸如存储过程之类的东西是高度特定于供应商的 - 所以我们真的需要知道什么数据库系统(以及哪个版本)你正在使用....

标签: sql-server-2008 stored-procedures


【解决方案1】:

假设我有一个字符串列表,如下所示

List<string> dates= new List<string>();
dates.Add("20121007193111");
dates.Add("20120130171010");
dates.Add("20110918190154");

和类似的网格视图

<asp:gridview runat="server" ID="gvDates" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="Last Purchase Date">
            <ItemTemplate>
                <%#ModifyDate(Container.DataItem.ToString())%>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:gridview>

在后面的代码中定义 ModifyDate 函数

public string ModifiedDate(string date)
    {
        CultureInfo provider = CultureInfo.InvariantCulture;
        string format = "yyyyMMddHHmmss";
        return DateTime.ParseExact(date, format, provider).ToString("yyyy/MM/dd HH:mm:ss");
    }

最后将列表与gridview绑定

gvDates.DataSource = dates;
gvDates.DataBind();

希望它能解决你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多