Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 不将前导零从一个表保存到另一个表_Asp.net - Fatal编程技术网

Asp.net 不将前导零从一个表保存到另一个表

Asp.net 不将前导零从一个表保存到另一个表,asp.net,Asp.net,在更新表字段的下拉列表上引发错误。它声明SelectedValue无效,因为它不在项目列表中。如果我进入表并将零添加到ID中,则不再抛出错误 下拉列表从教师表中选择一个作为主键的教师ID,并将该ID保存到班级表中。classes表保存以零开头但不带前导零的所有ID 因此,如果Classes表中的tid为0701234,则保存为701234,但两个表均为nvarchar(255)。我可以补充一点,Classes表对tid使用了int数据类型。所以我改变了它以避免这种情况。由于无法更新不存在的记录,

在更新表字段的下拉列表上引发错误。它声明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