如何在asp.net中打印包含(n-1)个特殊字符的n个数字?

时间:2014-11-10 12:46:14

标签: c# asp.net

我有一个数据表,其中包含两列InvoiceNo和InvoiceDate,我想在这样的文本框中打印这些值:

Table
Invoice No        Invoice Date
001               2/10/2013
006               7/10/2014
009               9/11/2014

我想在日期为2013年2月10日,2014年7月10日,2014年9月9日的发票号001,006,009等文本框中打印出来。 现在的问题是如何在它们之间插入(,)。我无法做到这一点。

3 个答案:

答案 0 :(得分:1)

试试这个: -

    var result = string.Format("Invlice Number {0} dated on {1} resp.", String.Join(",", tables.Select(x => x.InvoiceNumber.ToString("000"))),
                                                                       String.Join(",", tables.Select(x => x.InvoiceDate.ToShortDateString())));

为简单起见,我使用了List而不是dataTable。

或者对于DataTable,请尝试以下方法: -

string output = string.Format("Invoice Number {0} dated on {1} resp.", String.Join(",", (from DataRow dr in tab.Rows
                                                                                                 select ((int)dr["InvoiceNumber"]).ToString("000"))  ),
                                                                               String.Join(",", (from DataRow dr in tab.Rows
                                                                                                 select ((DateTime)dr["InvoiceDate"]).ToShortDateString())));

答案 1 :(得分:0)

您可以使用LINQ和String.Join()的混合来执行此操作。

var rows = (from DataRow row in table.Rows select row["columnname"].ToString()).ToList();
var commaSeparated = string.Join(", ", rows);

答案 2 :(得分:0)

由于我们对您的工作一无所知,这里有一些您可能需要的步骤;

  • 我假设您使用Sql Server,使用SqlConnectionSqlCommand来获取这些值。

using(SqlConnection con = new SqlConnection())
using(SqlCommand cmd = con.CreateCommand())
  • 使用SqlDataReader通过.Read方法提供阅读行(这会逐行读取您的行)并将string个变量定义为finalNofinalDate字符串的结果。

string finalNo = null, finalDate = null;
using(SqlDataReader reader = cmd.ExecuteReader())
{
   while(reader.Read())
   {

   }
}
  • 在您的while循环中,您可以将第一列读作reader[0],将第二列读为reader[1],并与finalNofinalDate字符串连接

while(reader.Read())
{
    finalNo += reader[0].ToString() + ",";    
    finalDate += reader[1].ToString() + " ,";    
}
  • 之后,您需要TrimEnd()字符串上的最后一个逗号,如<; li>

finalNo = finalNo.TrimEnd(',');
finalDate = finalDate.TrimEnd(',', ' ');
  • 然后,您可以在string.Format属性中使用Text;

TextBox1.Text = string.Format("Invoice Number {0} dated on {1}",
                              finalNo,
                              finalDate);