所以,我有一个列是我的关键列和自动增量,所以它不能是 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/