用SqlDataSource连接Access数据库实现增删查改功能

web.config配置文件: 

   <add name="ConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|数据库.accdb"
      providerName="System.Data.OleDb" />    

数据库要放在项目的App_Data文件夹下,方便项目整体迁移。
使用此连接的方法:

 OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
           

 页面中新建SqlDataSource,并添加插入、修改和删除的代码:

SqlDatasource的作用:连接到 ADO.NET 支持的任何 SQL 数据库,如 Microsoft SQL Server、Oracle 或 OLEDB。

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        DeleteCommand="DELETE FROM [联系人] WHERE [ID] = ?" 
        InsertCommand="INSERT INTO [联系人] ([姓名], [性别], [电话]) VALUES (?, ?, ?)" 
        ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
        SelectCommand="SELECT * FROM [联系人]" 
        UpdateCommand="UPDATE [联系人] SET [姓名] = ?, [性别] = ?, [电话] = ? WHERE [ID] = ?">
        <DeleteParameters>
            <asp:Parameter Name="ID" Type="Int32" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="ID" Type="Int32" />
            <asp:Parameter Name="姓名" Type="String" />
            <asp:Parameter Name="性别" Type="String" />
            <asp:Parameter Name="电话" Type="String" />
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="姓名Update" Type="String" />
            <asp:Parameter Name="性别Update" Type="String" />
            <asp:Parameter Name="电话Update" Type="String" />
            <asp:Parameter Name="ID" Type="Int32" />
        </UpdateParameters>
    </asp:SqlDataSource>

 再添加一GridView1

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" 
        DataSourceID="SqlDataSource1" 
        onrowcancelingedit="GridView1_RowCancelingEdit" 
        onrowdeleting="GridView1_RowDeleting" onrowupdating="GridView1_RowUpdating">
        <Columns>
            <asp:CommandField ShowEditButton="True" ShowSelectButton="True" 
                ShowDeleteButton="True" HeaderText="编辑"/>
            
            <asp:BoundField DataField="姓名" HeaderText="姓名" SortExpression="姓名" />
            <asp:BoundField DataField="性别" HeaderText="性别" SortExpression="性别" />
            <asp:BoundField DataField="电话" HeaderText="电话" SortExpression="电话" />
        </Columns>
    </asp:GridView>

 添加一个增加数据的按钮

<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="添加数据" />

 按钮的方法如下:

            OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            OleDbCommand cmd = new OleDbCommand(SqlDataSource1.InsertCommand, con);
            cmd.Parameters.Add("", OleDbType.VarChar).Value = TextBox1.Text.Trim();
            cmd.Parameters.Add("", OleDbType.VarChar).Value = TextBox2.Text.Trim();
            cmd.Parameters.Add("", OleDbType.VarChar).Value = TextBox3.Text.Trim();            
            con.Open();
            cmd.ExecuteNonQuery();
            Response.Write(con.State.ToString());
            con.Close();            
            GridView1.DataBind();

修改的方法如下:

            int id =Convert.ToInt32( GridView1.DataKeys[e.RowIndex].Value);
           OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
           OleDbCommand cmd = new OleDbCommand(SqlDataSource1.UpdateCommand, conn);
           string 姓名 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.Trim();
           string 性别 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.Trim();
           string 电话 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.Trim();
           cmd.Parameters.Add("", OleDbType.VarChar).Value = 姓名;
           cmd.Parameters.Add("", OleDbType.VarChar).Value = 性别;
           cmd.Parameters.Add("", OleDbType.VarChar).Value = 电话;
           cmd.Parameters.Add("", OleDbType.Integer).Value = id;
           conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            GridView1.DataBind();

  删除的方法如下:

            int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
            OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            OleDbCommand cmd = new OleDbCommand(SqlDataSource1.DeleteCommand, conn);
            cmd.Parameters.Add("", OleDbType.Integer).Value = id;
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            GridView1.DataBind();

 为删除按钮添加确认 

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //如果是绑定数据行 
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    ((LinkButton)e.Row.Cells[4].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
                }
            } 
        }

 

 

 

 

posted on 2015-07-29 09:45  插入成功  阅读(664)  评论(0)    收藏  举报

导航