我正在尝试在Gridview(ASP.net)中执行UPDATE操作。我创建了一个AccessDataSource并包含了所有查询。 删除,选择查询效果不错但 UPDATE
我在“更新语句”中收到错误“语法错误”。我的问题是
UPDATE RateCenters SET RateCenterName = @RateCenterName,
State/Province = @State/Province, Quantity/Threshold = @Quantity/Threshold
WHERE RateCenterID = @RateCenterID
我从网站上意识到,如果查询中包含特殊字符,例如“/”,则应使用“[]”
所以我已将查询更改为
UPDATE RateCenters SET [RateCenterName] = [RateCenterName], [State/Province] = [State/Province], [Quantity/Threshold] = [Quantity/Threshold] WHERE RateCenterID = RateCenterID.
现在我没有在UPDATE操作上收到任何错误,但数据没有得到更新
这是我的HTML代码
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/db1.mdb" SelectCommand="SELECT * FROM RateCenters"
DeleteCommand="DELETE FROM RateCenters WHERE RateCenterID = @RateCenterID"
InsertCommand="INSERT INTO RateCenters ([RateCenterID], [RateCenterName], [State/Province], [Quantity/Threshold]) VALUES ([RateCenterID], [RateCenterName], [State/Province], [Quantity/Threshold])"
UpdateCommand="UPDATE RateCenters SET RateCenterName = @RateCenterName, State[/]Province = @State[/]Province, Quantity[/]Threshold = Quantity[/]Threshold WHERE RateCenterID = @RateCenterID">
</asp:AccessDataSource>
请让我知道这个问题
由于
阿琼
答案 0 :(得分:1)
快速写下
UpdateCommand =“UPDATE RateCenters SET RateCenterName = @RateCenterName,[State / Province] = @State,[Quantity / Threshold] = @Quantity WHERE RateCenterID = @RateCenterID”&gt;
答案 1 :(得分:0)
尽量不要在列名中使用/ ...你可以使用[]来阻止你的列名......
UPDATE RateCenters SET [RateCenterName] = [RateCenterName], [State/Province] = [State/Province], [Quantity/Threshold] = [Quantity/Threshold] WHERE RateCenterID = RateCenterID.
它实际上已经更新了但是有相同的数据,这就是为什么它不可见...... =)
e.g
[Quantity/Threshold] = [Quantity/Threshold]
这只会将其重新分配给自己=)