さて、データベースのレコードを編集するために使用するGridviewコントロールがあります。私もクエリをパラメータ化しました。コードは次のとおりです。更新クエリでメモフィールドが削除されているようです
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
AutoGenerateEditButton="true" AutoGenerateDeleteButton="true"
DataSourceID="AccessDataSource1"
AutoGenerateColumns="False" DataKeyNames="ID"
AlternatingRowStyle-BackColor="Gray"
AlternatingRowStyle-CssClass="editGridFormat" RowStyle-CssClass="editGridFormat"
RowStyle-VerticalAlign="Top"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="BlogTitle" HeaderText="BlogTitle"
SortExpression="BlogTitle" />
<asp:ImageField DataImageUrlField="Image" HeaderText="Image"
DataImageUrlFormatString="~/PlaceImages/{0}" ControlStyle-CssClass="editPhotoGridFormat"
AlternateText="Something went wrong"
NullDisplayText="No picture on file" />
<asp:TemplateField headertext="PicText">
<EditItemTemplate>
<asp:TextBox id="PicTextBox" runat="server" text='<%# Eval("PicText")%>' textmode="MultiLine" height="300px" width="300px" />
</EditItemTemplate>
<ItemTemplate>
<%# Eval("PicText")%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TravelDate" HeaderText="TravelDate" SortExpression="TravelDate" />
<asp:TemplateField headertext="BeginText">
<EditItemTemplate>
<asp:TextBox id="BeginTextBox" runat="server" text='<%# Eval("BeginText")%>' textmode="MultiLine" height="300px" width="300px" />
</EditItemTemplate>
<ItemTemplate>
<%# Eval("BeginText")%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Caption" HeaderText="Caption" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="Country" HeaderText="Country"
SortExpression="Country" />
<asp:TemplateField headertext="EndText">
<EditItemTemplate>
<asp:TextBox id="EndTextBox" runat="server" text='<%# Eval("EndText")%>' textmode="MultiLine" height="300px" width="300px" />
</EditItemTemplate>
<ItemTemplate>
<%# Eval("EndText")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/TravelJoansDB.mdb"
SelectCommand="SELECT * FROM [Table2]"
DeleteCommand="DELETE FROM Table2 WHERE [ID] = ?"
UpdateCommand="UPDATE Table2 SET [BlogTitle] = ?,
[Image] = ?,
[PicText] = ?,
[TravelDate] = ?,
[BeginText] = ?,
[Caption] = ?,
[City] = ?,
[Country] = ?,
[EndText] = ?
WHERE [ID] = ? " >
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="BlogTitle" Type="String" />
<asp:Parameter Name="Image" Type="String" />
<asp:Parameter Name="PicText" Type="String" />
<asp:Parameter Name="TravelDate" DbType="Date" />
<asp:Parameter Name="BeginText" Type="String" />
<asp:Parameter Name="Caption" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="Country" Type="String" />
<asp:Parameter Name="EndText" Type="String" />
</UpdateParameters>
</asp:AccessDataSource>
TemplateFieldコントロールまたはパラメータタイプが文字列であるかどうかはわかりません。なぜなら、私のAccessデータベースではメモ型のものだからですが、私が見ることのできる半ば匹敵するものは文字列型です。私は、文字列タイプがメモフィールドを保持するのに十分な大きさではないことを賭けるだろうが、他に何が起こっているのか分からない。どんな助けでも大歓迎です。
また、特定のフィールドを編集しなくても、それらはすべて削除されます。 – Joseph
メモが文字列より大きくなる可能性は低いです。文字列の限界に達する前にメモがなくなる可能性が高くなります。 削除コマンドを削除するとどうなりますか? – codemonkeh
ああ、私は文字列が255文字に制限されていると思った。 – Joseph