1

我使用 ASP.NET 中的 Visual Web Developer 和 SQL Server 数据库创建了一个 Web 应用程序。在SqlDataSource我与INSERT INTO.

所以我的代码是:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT * FROM [Table1]"
            InsertCommand="INSERT INTO [Table1] ([Name(nick)], [E-mail], [Text]) VALUES (@Name(nick), @E-mail, @Text)">
        <InsertParameters>
            <asp:Parameter Name="Name(nick)" />
            <asp:Parameter Name="E-mail" />
            <asp:Parameter Name="Text" />
        </InsertParameters>
 </asp:SqlDataSource>  

一切看起来都很好,没有任何错误。当我在网络浏览器中查看我的项目或开始调试时,我有正常的网页。然后我输入一些文本,点击发送按钮和应用程序中的错误。

说明:'(' 附近的语法不正确。必须声明标量变量“@Name”。

规范:System.Data.SqlClient.SqlException:'(' 附近的语法不正确。必须声明标量变量“@Name”。

在我的表格中,我拥有所有这些值,在我的网页中,我也使用它。你能帮我看看有什么问题吗?

非常感谢!

4

3 回答 3

2

替换为这个查询

INSERT INTO Table1 (Name, E-mail, Text) VALUES (@Name, @E-mail, @Text)

(尼克)在您的查询中产生问题

InsertCommand="INSERT INTO Table1 (Name, E-mail, Text) VALUES (@Name, @E-mail, @Text)">
于 2012-08-29T20:41:48.317 回答
2

语法似乎不正确。您需要列出字段名称,然后是参数名称
,我认为正确的字段是Name,并且您有一个名为的参数@nick,但据我所知,也可能是相反的。

 InsertCommand="INSERT INTO [Table1] ([Name], [E-mail], [Text]) VALUES (@nick, @E-mail, @Text)"

附带说明一下,尽量避免使用数据类型 (TEXT) 的名称作为字段名称

于 2012-08-29T20:43:10.493 回答
0

Name(nick)不允许包含括号的参数,它会导致问题。InsertParameters只需在和 中替换它InsertCommand

 InsertCommand="INSERT INTO [Table1] ([Name], [E-mail], [Text]) VALUES (@Name, @E-mail, @Text)">
  -- [Name] is considered as column in the table
 <asp:Parameter Name="Name" />
于 2012-08-29T20:51:50.973 回答