1)對於帶複選框的gridview,在vb.net中沒有主鍵的表的更新查詢的語法是什麼?VB.NET - 在Gridview中沒有主鍵的表的SQL UpdateCommand
聲明:令人沮喪的是,添加主鍵不是一個選項。我的程序是一個更大的系統中的一個小程序,數據管理很差。我的開發時間不包括重寫其他軟件。
下面是表在哪裏AgentLeads是數據庫和MktDtaLeads_Scrubbed是表中的列:
FROM [AgentLeads].[dbo].[MktDtaLeads_Scrubbed] - [Last Name] ,[First Name],
[Middle Name] ,[Suffix] ,[Address Line 1] ,[Address Line 2] ,[City] ,[ST],
[ZipCode] ,[Email Address] ,[Phone Nbr] ,[Toll Free Nbr] ,[InsertDate] ,
[SentDate] ,[DoNotMail]
我現在不顯示任何錯誤,但不更新DoNotMail場時,該代碼即使它顯示文本「在所選字段的數據庫中更改了DoNotMail值」,也會選中該複選框。
因爲我背後的default.aspx.vb碼補充說:
Public Sub gridview1_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
If e.CommandName = "UpdateDoNotMail" Then
With Me.SqlDataSource1
Dim box As CheckBox = DirectCast(sender, CheckBox)
If box.Checked = True Then
donotmail.SelectedValue = 1
.ConnectionString = ConfigurationManager.AppSettings("AgentLeadsConnectionString").ToString
.UpdateCommand = "UPDATE MktDataLeads_scrubbed set [email protected]
WHERE [last name][email protected] AND [first name][email protected] AND [Address Line 1][email protected] Line 1.selectedrow"
Else
donotmail.SelectedValue = 0
.ConnectionString = ConfigurationManager.AppSettings("AgentLeadsConnectionString").ToString
.UpdateCommand = "UPDATE MktDataLeads_scrubbed set [email protected]
WHERE [last name][email protected] AND [first name][email protected] AND [Address Line 1][email protected] Line 1.selectedrow"
End If
End With
End If
End Sub
這裏的default.aspx上爲GridView的代碼:
<asp:GridView ID="GridView2" runat="server" CellPadding="2"
DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Last Name" HeaderText="Last Name"
SortExpression="Last Name" />
<asp:BoundField DataField="First Name" HeaderText="First Name"
SortExpression="First Name" />
<asp:BoundField DataField="Address Line 1" HeaderText="Addr 1"
SortExpression="Address Line 1" />
<asp:BoundField DataField="Address Line 2" HeaderText="Addr 2"
SortExpression="Address Line 2" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="ST" HeaderText="ST" SortExpression="ST" />
<asp:BoundField DataField="ZipCode" HeaderText="ZipCode"
SortExpression="ZipCode" />
<asp:BoundField DataField="Email Address" HeaderText="Email Addr"
SortExpression="Email Address" />
<asp:BoundField DataField="Phone Nbr" HeaderText="Phone Nbr"
SortExpression="Phone Nbr" />
<asp:TemplateField HeaderText="DoNotMail" SortExpression="DoNotMail">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" CommandName="UpdateDoNotMail" Checked='<%# Bind("DoNotMail") %>'
Enabled="true" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" CommandName="UpdateDoNotMail" Checked='<%# Bind("DoNotMail") %>' />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
2)有可能做兩當用戶點擊一個按鈕時,在整個gridview上進行雙向同步,因此每次更改某行時都不必進行更新?因爲用戶可能會檢查框,然後檢查另一個框,然後取消選中一個框,這將是很多更新...
什麼是正確的語法換.UpdateCommand =「UPDATE MktDataLeads_scrubbed set donotmail = @ donotmail WHERE GridViewRow row = GridView1.SelectedRow AND [last name] = @ lastname.selectedrow AND [first name] = @ firstname.selectedrow AND [Address Line 1] = @ Address Line 1.selectedrow「 – 2011-02-08 15:51:47