用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 + "\"吗?')");
}
}
}
浙公网安备 33010602011771号