DataGrid9.aspx
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %><html><head>
<script language="VB" runat="server"> Dim MyConnection As SqlConnection
Public StateIndex As Hashtable Sub Page_Load(Src As Object, E As EventArgs) MyConnection = New SqlConnection("server=(local)\NetSDK;database=pubs;Trusted_Connection=yes") If Not (IsPostBack)
BindGrid()
End If StateIndex = New Hashtable()
StateIndex("CA") = 0
StateIndex("IN") = 1
StateIndex("KS") = 2
StateIndex("MD") = 3
StateIndex("MI") = 4
StateIndex("OR") = 5
StateIndex("TN") = 6
StateIndex("UT") = 7
End Sub Sub MyDataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = CInt(E.Item.ItemIndex)
BindGrid()
End Sub Sub MyDataGrid_Cancel(Sender As Object, E As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs) If (Page.IsValid)
Dim DS As DataSet
Dim MyCommand As SqlCommand Dim UpdateCmd As String = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = " _
& " @Phone, address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id" MyCommand = New SqlCommand(UpdateCmd, MyConnection) MyCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.NVarChar, 11))
MyCommand.Parameters.Add(New SqlParameter("@LName", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@FName", SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@Phone", SqlDbType.NChar, 12))
MyCommand.Parameters.Add(New SqlParameter("@Address", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@City", SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@State", SqlDbType.NChar, 2))
MyCommand.Parameters.Add(New SqlParameter("@Zip", SqlDbType.NChar, 5))
MyCommand.Parameters.Add(New SqlParameter("@Contract", SqlDbType.NVarChar,1)) MyCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex)) Dim Cols As String() = {"LName","FName","Phone","Address","City","Zip"} Dim I As Integer
For I = 0 To 5
Dim CurrentTextBox As TextBox
CurrentTextBox = E.Item.FindControl("edit_" & Cols(I))
Dim ColValue As String = CurrentTextBox.Text
MyCommand.Parameters("@" & Cols(I)).Value = ColValue
Next Dim StateDropDownList As DropDownList
StateDropDownList = E.Item.FindControl("edit_State")
MyCommand.Parameters("@State").Value = StateDropDownList.SelectedItem.ToString() Dim ContractCheckBox As CheckBox
ContractCheckBox = E.Item.FindControl("edit_Contract") If ContractCheckBox.Checked = true
MyCommand.Parameters("@Contract").Value = "1"
Else
MyCommand.Parameters("@Contract").Value = "0"
End If MyCommand.Connection.Open() Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>已更新记录</b><br>" & UpdateCmd
MyDataGrid.EditItemIndex = -1
Catch Exp As SqlException
If Exp.Number = 2627
Message.InnerHtml = "错误:已存在具有相同主键的记录"
Else
Message.InnerHtml = "错误:未能更新记录,请确保正确填写了字段"
End If
Message.Style("color") = "red"
End Try MyCommand.Connection.Close() BindGrid()
Else
Message.InnerHtml = "错误:请检查每个字段中的错误情况。"
Message.Style("color") = "red"
End If
End Sub Sub BindGrid() Dim DS As DataSet
Dim MyCommand As SqlDataAdapter
MyCommand = new SqlDataAdapter("select * from Authors", MyConnection) DS = new DataSet()
MyCommand.Fill(DS, "Authors") MyDataGrid.DataSource=DS.Tables("Authors").DefaultView
MyDataGrid.DataBind()
End Sub</script>
</head>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %><html><head>
<script language="VB" runat="server"> Dim MyConnection As SqlConnection
Public StateIndex As Hashtable Sub Page_Load(Src As Object, E As EventArgs) MyConnection = New SqlConnection("server=(local)\NetSDK;database=pubs;Trusted_Connection=yes") If Not (IsPostBack)
BindGrid()
End If StateIndex = New Hashtable()
StateIndex("CA") = 0
StateIndex("IN") = 1
StateIndex("KS") = 2
StateIndex("MD") = 3
StateIndex("MI") = 4
StateIndex("OR") = 5
StateIndex("TN") = 6
StateIndex("UT") = 7
End Sub Sub MyDataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = CInt(E.Item.ItemIndex)
BindGrid()
End Sub Sub MyDataGrid_Cancel(Sender As Object, E As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs) If (Page.IsValid)
Dim DS As DataSet
Dim MyCommand As SqlCommand Dim UpdateCmd As String = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = " _
& " @Phone, address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id" MyCommand = New SqlCommand(UpdateCmd, MyConnection) MyCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.NVarChar, 11))
MyCommand.Parameters.Add(New SqlParameter("@LName", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@FName", SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@Phone", SqlDbType.NChar, 12))
MyCommand.Parameters.Add(New SqlParameter("@Address", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@City", SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@State", SqlDbType.NChar, 2))
MyCommand.Parameters.Add(New SqlParameter("@Zip", SqlDbType.NChar, 5))
MyCommand.Parameters.Add(New SqlParameter("@Contract", SqlDbType.NVarChar,1)) MyCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex)) Dim Cols As String() = {"LName","FName","Phone","Address","City","Zip"} Dim I As Integer
For I = 0 To 5
Dim CurrentTextBox As TextBox
CurrentTextBox = E.Item.FindControl("edit_" & Cols(I))
Dim ColValue As String = CurrentTextBox.Text
MyCommand.Parameters("@" & Cols(I)).Value = ColValue
Next Dim StateDropDownList As DropDownList
StateDropDownList = E.Item.FindControl("edit_State")
MyCommand.Parameters("@State").Value = StateDropDownList.SelectedItem.ToString() Dim ContractCheckBox As CheckBox
ContractCheckBox = E.Item.FindControl("edit_Contract") If ContractCheckBox.Checked = true
MyCommand.Parameters("@Contract").Value = "1"
Else
MyCommand.Parameters("@Contract").Value = "0"
End If MyCommand.Connection.Open() Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>已更新记录</b><br>" & UpdateCmd
MyDataGrid.EditItemIndex = -1
Catch Exp As SqlException
If Exp.Number = 2627
Message.InnerHtml = "错误:已存在具有相同主键的记录"
Else
Message.InnerHtml = "错误:未能更新记录,请确保正确填写了字段"
End If
Message.Style("color") = "red"
End Try MyCommand.Connection.Close() BindGrid()
Else
Message.InnerHtml = "错误:请检查每个字段中的错误情况。"
Message.Style("color") = "red"
End If
End Sub Sub BindGrid() Dim DS As DataSet
Dim MyCommand As SqlDataAdapter
MyCommand = new SqlDataAdapter("select * from Authors", MyConnection) DS = new DataSet()
MyCommand.Fill(DS, "Authors") MyDataGrid.DataSource=DS.Tables("Authors").DefaultView
MyDataGrid.DataBind()
End Sub</script>
</head>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货