c# - 填充 0 - MySQL

标签 c# mysql select datatable zero-pad

所以,我有一个列是我的关键列和自动增量,所以它不能是 varchar 或任何有趣的东西。

请保留“Erhmahgerd urse werb contrerls”,因为我喜欢控制自己的 HTML 流程,不喜欢将其交给 .NET。我在这方面从未有过良好的经验(并且我希望我的代码兼容)。我不希望这是一场激烈的 war 或其他什么——我只想用零填充。我觉得有必要这么说,因为这样的事情以前发生过太多次了。

所以,无论如何。

DataTable tabledata = new DataTable();  
using (OdbcConnection con = new OdbcConnection(conString)) {
    using (OdbcCommand com = new OdbcCommand("SELECT * FROM equipment_table", con)) {
        OdbcDataAdapter myAdapter = new OdbcDataAdapter();
        myAdapter.SelectCommand = com;
        try {
            con.Open();
            myAdapter.Fill(tabledata);
        } catch (Exception ex) {
            throw (ex);
        } finally {
            con.Close();
        }
    }
}
Response.Write("<table id=\"equipment_listtable\"><thead><tr><th>Equipment ID</th><th>Equipment Name</th><th>Equipment Description</th><th>Type</th><th>In Use?</th><th>iOS Version (if applicable)</th><th>Permission Level</th><th>Status</th><th>Asset Tag</th><th>Details</th><th>Change</th><th>Apply</th></tr></thead>");
foreach (DataRow row in tabledata.Rows) {
    int counter = (int)row["Equipment_ID"];
    Response.Write("<tr>");
    foreach (var item in row.ItemArray) {
        Response.Write("<td>" + item + "</td>");
    }
    Response.Write("This stuff is irrelevant to my problem, so it is being left out... It uses counter though, so no complaining about not using variables...");
}
Response.Write("</table>");

正如您所想象的,我的键列的值在生成的表中如下所示:

1
10
11
12
13
14
15
16
17
18
19
20
2
21

等等。我想用 0 填充来解决这个问题。做这个的最好方式是什么?有没有办法在生成表时定位特定字段?我研究过 DataRow.Item,但我总是发现 MSDN 文档有点难以理解。

或者,我可以选择 *,然后在 * 中的一个特定字段上使用 mysql 的 lpad 吗?

谢谢!

最佳答案

使用 SELECT * 通常不是一个好主意。它不可避免地会导致比通过编写查询节省的时间更多的问题。
这将允许您在色谱柱上使用 LPAD。

我打算建议使用类似的东西:
Response.Write(""+ item.ToString.PadLeft(2, '0')+ "");

但是由于您只是循环每个项目并以相同的方式渲染它们,因此上面的内容会填充每个单元格。

所以我认为最好的选择是更改查询以指定每一列。然后您可以根据需要填充该字段。
或者,如果您只担心它们没有正确排序(即,按字符而不是整数排序),请使用 ORDER BY。

或者,为从数据库读取的每个单元格创建一个变量并单独渲染每个单元格。 如果您需要的话,这将为您提供更多自定义选项。

关于c# - 填充 0 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12859711/

相关文章:

c# - 最小起订量:抛出传递给方法的异常

mysql - sql使用union和orderby查询一张表

Oracle + JPA - 使用 INTERVAL 查询

mysql - MySQL的SELECT WHERE如何进行整数比较?

c# - 获取两个列表之间的差异

c# - 方法重载——好设计还是坏设计?

c# - 通过扩展方法将一个对象转换为另一个对象——寻找替代解决方案

C++:如何使用 libmysqld 高效读取 MySql 数据?

mysql - SQL for WP 删除具有多个元键和注释的用户

mysql 我寻求消除所有不包含最大日期的行