-1
我正在嘗試更新後面使用c#代碼的gridview。我通常使用SqlDataSource,但我需要捕獲當前用戶進行更改,但似乎不起作用。所以我想我會在後面的代碼中嘗試一下。從代碼後面更新gridview?
這裏是在GridView:
<asp:GridView
ID="gv_rvw_sub"
runat="server"
AllowPaging="True"
AllowSorting="True"
DataSourceID="sdc_gv_rvw_sub"
CellPadding="4"
AutoGenerateColumns="False"
EmptyDataText="There are no records to display."
OnSelectedIndexChanged="gv_rvw_sub_SelectedIndexChanged"
OnRowUpdating="gv_rvw_sub_RowUpdating">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:CommandField ShowEditButton="True" ShowSelectButton="True"></asp:CommandField>
<asp:BoundField DataField="doc_rvw_sub_id_pk" HeaderText="Submission" ReadOnly="True" InsertVisible="False" SortExpression="doc_rvw_sub_id_pk"></asp:BoundField>
<asp:BoundField DataField="doc_rvw_sub_by" HeaderText="Submitted By" SortExpression="doc_rvw_sub_by" ReadOnly="true"></asp:BoundField>
<asp:BoundField DataField="doc_rvw_sub_recip_list" HeaderText="Recipient" SortExpression="doc_rvw_sub_recip_list" ReadOnly="true" />
<asp:BoundField DataField="doc_rvw_sub_dt" HeaderText="Date Submitted" SortExpression="doc_rvw_sub_dt" DataFormatString="{0:MM/dd/yyyy}" ReadOnly="true"></asp:BoundField>
<asp:BoundField DataField="doc_rvw_sub_due_dt" HeaderText="Due Date" SortExpression="doc_rvw_sub_due_dt" DataFormatString="{0:MM/dd/yyyy}" ReadOnly="true" />
<asp:TemplateField AccessibleHeaderText="Review Status" HeaderText="Review Status" SortExpression="doc_rvw_sub_status_list">
<EditItemTemplate>
<asp:DropDownList
ID="DropDownList1"
runat="server"
AutoPostBack="True"
DataSourceID="sdc_doc_rvw_sub_status_list"
DataTextField="rvw_status"
DataValueField="rvw_status_id_pk"
AppendDataBoundItems="true"
SelectedValue='<%# Bind("doc_rvw_sub_status_list") %>'>
<asp:ListItem Value="">Please Select</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("rvw_status") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Status Set By" SortExpression="doc_rvw_sub_status_set_by">
<EditItemTemplate>
<%--<asp:Label runat="server" Text='<%# Eval("doc_rvw_sub_by") %>' ID="Label1"></asp:Label>--%>
<asp:TextBox ID="status_set_by_txt" runat="server" Text='<%# Eval("doc_rvw_sub_status_set_by") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" Text='<%# Bind("doc_rvw_sub_status_set_by") %>' ID="Label2"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="doc_rvw_sub_status_dt_set" HeaderText="Status Date" SortExpression="doc_rvw_sub_status_dt_set" DataFormatString="{0:MM/dd/yyyy}" ReadOnly="true" />
<asp:BoundField Visible="false" DataField="doc_rvw_id_fk" HeaderText="Document ID" SortExpression="doc_rvw_id_fk" ReadOnly="true"></asp:BoundField>
</Columns>
</asp:GridView>
這裏是在SqlDataSource:
<asp:SqlDataSource
ID="sdc_gv_rvw_sub"
runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:idrfConnectionString %>"
InsertCommand="INSERT INTO [tbl_doc_rvw_sub] ([doc_rvw_sub_by], [doc_rvw_sub_recip_list], [doc_rvw_sub_dt], [doc_rvw_sub_status_list], [doc_rvw_id_fk]) VALUES (@doc_rvw_sub_by, @doc_rvw_sub_recip_list, @doc_rvw_sub_dt, @doc_rvw_sub_status_list, @doc_rvw_id_fk)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="
SELECT [doc_rvw_sub_id_pk]
, [doc_rvw_sub_by]
, [doc_rvw_sub_recip_list]
, [doc_rvw_sub_dt]
, [doc_rvw_sub_status_list]
, tsl.rvw_status
, [doc_rvw_id_fk]
, [doc_rvw_sub_due_dt]
, [doc_rvw_sub_status_set_by]
, [doc_rvw_sub_status_dt_set]
FROM [tbl_doc_rvw_sub]
LEFT JOIN tbl_status_list tsl
ON tbl_doc_rvw_sub.doc_rvw_sub_status_list=tsl.rvw_status_id_pk
WHERE ([doc_rvw_id_fk] = @doc_rvw_id_fk)">
<SelectParameters>
<asp:ControlParameter ControlID="gv_doc_rvw" Name="doc_rvw_id_fk" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
這裏是後面的代碼:
protected void gv_rvw_sub_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection idrf_cnxn = new SqlConnection("Data Source=WDBSVCPRD01\\SVCDB;Initial Catalog=idrf;Integrated Security=True");
{
SqlCommand updt_sub_rvw_cmd = new SqlCommand("UPDATE tbl_doc_rvw_sub(doc_rvw_sub_status_list, doc_rvw_sub_status_set_by, doc_rvw_sub_status_dt_set) WHERE ([email protected]_rvw_sub_status_list, [email protected]_rvw_sub_status_set_by, [email protected]_rvw_sub_status_dt_set)", idrf_cnxn);
updt_sub_rvw_cmd.Parameters.AddWithValue("@doc_rvw_sub_status_list", gv_rvw_sub.FindControl("DropDownList1"));
updt_sub_rvw_cmd.Parameters.AddWithValue("@doc_rvw_sub_status_set_by", HttpContext.Current.User.Identity.Name);
updt_sub_rvw_cmd.Parameters.AddWithValue("@doc_rvw_sub_status_dt_set", DateTime.Now.ToString());
idrf_cnxn.Open();
updt_sub_rvw_cmd.ExecuteNonQuery();
idrf_cnxn.Close();
if (IsPostBack)
{
gv_doc_rvw.DataBind();
}
}
}
問題是我不斷收到以下錯誤 - 「語法不正確」(''
我哪裏出錯了?有一個更好的方法嗎?在SQL
這就是你想從項目中刪除'SQL',並把它變成一個存儲過程中,錯誤告訴你什麼是錯誤的。所以你需要看看Insert語句或UpDate語句,並檢查語法是否正確以及適當的間隔也查找更新語句的正確語法 – MethodMan
In更新語句'UPDATE tbl_doc_rvw_sub(doc_rvw_ sub_status_list'你能不能看到(在表名 –
那麼,那很尷尬。謝謝尼爾。 – user1916528