我有一個項目,我正在使用Visual Studio 2010和ASP.NET Web窗體。其中,我有一個綁定到MySQL表的GridView控件。它在控件中顯示我的表沒有問題,但是在啓用了對控件的編輯後,我發現在字段中有空格時更新表中的字段時出現問題。使用MySQL的ASP.NET GridView控件 - 使用參數空格的UpdateQuery
例如,我有以下表中定義:
CREATE TABLE `test_table` (
`oid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`first_column` varchar(20) NOT NULL,
`second_column` varchar(20) NOT NULL,
`third column` varchar(20) NOT NULL,
PRIMARY KEY (`oid`)
)
注意的領域之一,在名稱中的空間。這是我遇到問題的地方。在我的網頁,我有以下代碼:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="oid" DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="oid" HeaderText="oid" ReadOnly="True"
SortExpression="oid" />
<asp:BoundField DataField="first_column" HeaderText="first_column"
SortExpression="first_column" />
<asp:BoundField DataField="second_column" HeaderText="second_column"
SortExpression="second_column" />
<asp:BoundField DataField="third column" HeaderText="third column"
SortExpression="third column" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testcon %>"
ProviderName="<%$ ConnectionStrings:testcon.ProviderName %>"
SelectCommand="select * from test_table" UpdateCommand="update `test_table` set
`first_column` = @first_column,
`second_column` = @second_column
where
`oid` = @oid"></asp:SqlDataSource>
通過更新命令的方式,我能夠在這個表上就好了更新和FIRST_COLUMN是second_column。現在我想以相同的方式更新third column
,但它不起作用。如果我更改查詢到這一點:
update `test_table` set
`first_column` = @first_column,
`second_column` = @second_column,
`third column` = @third column
where
`oid` = @oid
當查詢運行它會給我這個錯誤:
Parameter '@third' must be defined.
我也試過@third \柱,@ {第三列},@ [第三列],{@第三列] - 顯然這些工作都沒有。因此我的問題是:我爲更新查詢所做的更新能夠更新我的MySQL字段,該字段中有一個空格?
'@third column'中有空格 – codingbiz
謝謝@tunmise fasipe。這是我的問題的重點。我試圖引用同名的字段,其中合法地包含一個空格。 – endoalir
也許你可以改變你的模式到'third_column'以與其他列保持一致。標準變量不應該有空格 – codingbiz