【发布时间】:2014-05-13 20:33:39
【问题描述】:
我无法让 SQL ID(不是自动递增)递增,然后让该值(字母数字)填充文本框。 我关注Stack Overflow 的增量和Stack Overflow 将值填充到文本框。我没有看到 ID 增加了,我的文本框仍然是空的。
谁能告诉我我做错了什么。
这是我遇到问题的代码:
protected void Page_Load(object sender, Eventargs e)
{
string ID_upd = "UPDATE table SET ID = ID + 1";
string ID_sel = "SELECT TOP 1 ID FROM table ORDER BY ID DESC";
SqlConnection IDcon = new SqlConnection(Connection string);
SqlCommand cmdupd = new SqlCommand(ID_upd, IDcon);
SqlCommand cmdsel = new SqlCommand(ID_sel, IDcon);
IDcon.Open();
cmdupd.ExecuteNonquery();
IDcon.Close();
try
{
IDcon.Open();
using (SqlDataReader read = cmdsel.ExecuteReader())
{
while (read.Read())
{
TextboxID.Text = (read["ID"].ToString());
}
}
}
finally
{
IDcon.close();
}
}
感谢您的帮助。
编辑:我已经在我的测试页面中运行了这个。我成功填充了文本框,但没有成功填充更新命令。收到的错误是:将 varchar 值“A12345”转换为数据类型 int 时转换失败。这也不是我最后一个 ID 值。
【问题讨论】:
-
你用过调试器吗?您真的要更新所有行吗?
-
这是错误的做法,这两个SQL命令之间可以更改ID。
-
蒂姆,我会试试的。谢谢哈姆雷特,我需要将 ID 更新到下一个增量,然后将新的 ID 值放入文本框中。我应该分开命令并让加载页面分别进入每个命令吗?
-
首先,您的更新语句正在更新表中的每一行,我非常怀疑这就是您的意思。其次,尝试设置断点并查看返回的值。
-
本,你是对的,我只想更新 ID 列,但从我读到的更新命令应该只更新 ID 列。我是不是看错帖子了?