Asp.net 不将前导零从一个表保存到另一个表
在更新表字段的下拉列表上引发错误。它声明SelectedValue无效,因为它不在项目列表中。如果我进入表并将零添加到ID中,则不再抛出错误 下拉列表从教师表中选择一个作为主键的教师ID,并将该ID保存到班级表中。classes表保存以零开头但不带前导零的所有ID 因此,如果Classes表中的tid为0701234,则保存为701234,但两个表均为nvarchar(255)。我可以补充一点,Classes表对tid使用了int数据类型。所以我改变了它以避免这种情况。由于无法更新不存在的记录,因此更改后仍会引发上述错误 这是控制按钮Asp.net 不将前导零从一个表保存到另一个表,asp.net,Asp.net,在更新表字段的下拉列表上引发错误。它声明SelectedValue无效,因为它不在项目列表中。如果我进入表并将零添加到ID中,则不再抛出错误 下拉列表从教师表中选择一个作为主键的教师ID,并将该ID保存到班级表中。classes表保存以零开头但不带前导零的所有ID 因此,如果Classes表中的tid为0701234,则保存为701234,但两个表均为nvarchar(255)。我可以补充一点,Classes表对tid使用了int数据类型。所以我改变了它以避免这种情况。由于无法更新不存在的记录,
<asp:DropDownList ID="teacherdd1" runat="server" AutoPostBack="true"
DataSourceID="SQLdatasourceTeacherList"
DataTextField="fullname1" DataValueField="tid" >
</asp:DropDownList>
我根本不知道该怎么办,也不知道为什么会发生这种情况
很简单。我切换到一个文本框进行测试,但忘了再次检查。我的疏忽
谢谢
cmdUpdate.Parameters.Add(“@TID1”,SqlDbType.Int).Value=teacherdd1.SelectedValue.ToString()
cmdUpdate.Parameters.Add(“@TID2”,SqlDbType.Int).Value=teacherdd2.SelectedValue.ToString()
'cmdUpdate.Parameters.Add(“@tid1”,SqlDbType.NVarChar).Value=txbteacher1.Text.ToString()
'cmdUpdate.Parameters.Add(“@tid2”,SqlDbType.NVarChar).Value=txbteacher2.Text.ToString()正如MRAB已经说过的,您需要在代码中跟踪这些数据,以确保它始终被视为字符串。您提到classes表中的字段过去是int,这表明代码中可能也使用了int变量(例如SQL命令的参数?) 因此,只需跟随数据,或者使用调试器单步执行,或者只跟随代码。使用调试器将允许您检查数据是否仍然包含前导零,以便不会发生意外情况
如果上述方法无效,那么您必须在问题中提供更多的代码,以便其他人发现发生了什么。您是否尝试过查看将tid放在表中的代码?它在某个点上把它当作int吗?MRAB是对的。不知何故,在测试中,我切换回int