【问题标题】:A An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user codeA System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理
【发布时间】:2017-02-11 21:19:19
【问题描述】:

我正在尝试将 ASP.NET 中的记录插入到表中,但我不知道为什么会出现此错误。请帮我解决这个错误。感谢您的帮助。

这是表格截图:

[![在此处输入图片描述][1]][1]

这是我得到的错误代码:

“System.Data.SqlClient.SqlException”类型的异常发生在 System.Data.dll 但未在用户代码中处理

这是异常错误图片:

[![2][2]][2]

【问题讨论】:

  • 难道没有异常消息可以更准确地告诉您出了什么问题吗?
  • 是 Id 列是自动递增的还是只是一个 int 而不是 null ?
  • id只是int,我上传了错误截图,请检查
  • 不,你没有。在第二个窗口中,请单击“查看详细信息..”并复制描述错误的消息
  • Table 是 SQL 保留字。将您的表名称更改为未保留的名称,或者,如果您必须使用它,请将其放在括号中,例如 [Table]

标签: c# asp.net sql-server


【解决方案1】:

您的查询有两个问题:

  1. Table 是 SQL 中的一个关键字,因此您不能以这种方式使用它。重命名表并给出一个在 SQL 中没有关键字的名称,或者在括号中转义名称:

    INSERT INTO [Table]...
    

    显然,这就是异常消息告诉您的内容。

  2. 如果您的id 列不是自动递增的,您也需要为此列传递一个值,因为它不能是NULL,如您的表声明所示。

【讨论】:

  • 表是 SQL 保留字。将您的表格名称更改为未保留的名称,或者,如果您必须使用它,请将其放在括号中,如 [Table]。
【解决方案2】:

尝试重命名表名。此外,您可以在设置 cmd 对象后放置断点以查看插入语句的外观。

SqlCommand cmd = new SqlCommand("insert into TableName values(@username)",con);
cmd.Parameters.AddWithValue("@username", Username.Text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多