【C#/ASP.NET】数据库接口总结
2017-06-15 21:54
330 查看
操作系统:Windows10
IDE:Visual Studio + SQL Server
2) 变量描述
控件声明:
数据源定义:
定义函数后,在前端对gridview中某一行数据修改时,对数据库进行相应增删、改、改操作,然后调用bindAllorder(),即可重新绑定控件数据源。
提交button的响应函数:bn_addUser_Click()
IDE:Visual Studio + SQL Server
1. 数据库连接
1) 先在web.config文件中设置连接属性:<connectionStrings> <add name="PhotoStudioConnectionString" connectionString="Data Source=DESKTOP4RPK98H; Initial Catalog=PhotoStudio; User ID=sa; Password=sql123" providerName="System.Data.SqlClient"**/>** </connectionStrings>
2) 变量描述
SqlConnection cn; //数据库连接 string strCon = ConfigurationManager.ConnectionStrings["PhotoStudioConnectionString"].ConnectionString; //连接配置
2. 为控件绑定数据
方法一:直接为控件添加数据源
添加工具中的SqlDataSource,选择所需表、列,即可简单绑定,该方法操作简单,适合静态数据的展示,用于多种控件,如GridView, DataList。但该方法不适合动态绑定的控件数据。例如Datalist数据绑定:控件声明:
<asp:DataList ID="DataList_pkgIntro" runat="server" DataSourceID="SqlDataSource_pkgIntro" DataKeyField="packageID" > <ItemTemplate> <table width="100%" align="center"> <tr> <td align ="center" height:"auto" valign="top"> <asp:Image ID="Image2" runat="server" ImageUrl='<%# Eval("pkgImage") %>' /> </td> </tr>** </table> </ItemTemplate> <!--其他代码--> </asp:DataList>
数据源定义:
<asp:SqlDataSource ID="SqlDataSource_pkgIntro" runat="server" ConnectionString="<%$ ConnectionStrings:PhotoStudioConnectionString %>" SelectCommand="SELECT [packageID], [pkgImage], [overview], [name] FROM [Package]"> </asp:SqlDataSource>
方法二:在.cs后端代码中动态绑定数据源
aspx.cs文件中:public void bindAllorder() { string cmdStr = "EXEC pr_用户订单 @userID=1,@role='管理员',@status=null"; cn = new SqlConnection(strCon); //建立数据库连接 //创建DataAdapter数据适配器实例,以自定义SQL语句和数据库连接cn为参数 SqlDataAdapter da = new SqlDataAdapter(cmdStr, cn); DataSet ds = new DataSet(); //创建DataSet实例 cn.Open(); //打开数据库连接 da.Fill(ds); //填充数据集 if (ds.Tables[0].Rows.Count <= 0)//查询结果中的列数小于等于0,结果集为空 label_page.Text = "当前没有预约记录"; allorderGV.DataSource = ds; //allorderGV为gridview控件,数据源为ds allorderGV.DataKeyNames = new string[] { "订单号" };//设置主键 allorderGV.DataBind();//数据绑定 cn.Close();//关闭连接 }
定义函数后,在前端对gridview中某一行数据修改时,对数据库进行相应增删、改、改操作,然后调用bindAllorder(),即可重新绑定控件数据源。
3. 数据库增加记录
以用户注册为例:前端用户填写表格,填充各项相关信息,点击确认,触发bn_addUser_Click()函数,读取表格内各项信息,插入用户表。提交button的响应函数:bn_addUser_Click()
protected void bn_addPhotographer_Click(object sender, EventArgs e) { if (this.IsValid) { SqlConnection cn = new SqlConnection(strCon); SqlCommand cmd_Tuser = new SqlCommand("SET IDENTITY_INSERT Tuser OFF INSERT INTO Tuser(username,userpwd,gender,phonenumber,mail,role) VALUES (@username, @userpwd, @gender, @phonenumber, @mail,@role)", cn); //不插入ID,自增 cmd_Tuser.Parameters.Add("@username", SqlDbType.VarChar).Value = txtUsername.Text; cmd_Tuser.Parameters.Add("@userpwd", SqlDbType.VarChar).Value = txtPwd.Text; cmd_Tuser.Parameters.Add("@gender", SqlDbType.VarChar).Value = bnGender.SelectedValue; cmd_Tuser.Parameters.Add("@phonenumber", SqlDbType.Char).Value = txtPhone.Text; cmd_Tuser.Parameters.Add("@mail", SqlDbType.VarChar).Value = txtMail.Text; cmd_Tuser.Parameters.Add("@role", SqlDbType.VarChar).Value = "用户"; try { cn.Open();//打开数据库连接 cmd_Tuser.ExecuteNonQuery();//先向user表插入 Response.Write("<script>window.alert('新增成功!');window.location='myCenter_admin.aspx?page=allPhotographer'</script>"); } catch { ClientScript.RegisterStartupScript(this.GetType(), "Key", "<script>alert('插入失败!');</script>"); } finally { cn.Close(); } } }
4. 数据库删除记录
在gridview每一行记录的末端加入一个“删除”按钮,后台获取该行的主码值,触发删除操作,对应的事件为OnRowDeleting,触发函数:protected void allorderGV_RowDeleting(object sender,GridViewDeleteEventArgs e) { string cmdStr = "delete from TOrder where orderID='" + allorderGV.DataKeys[e.RowIndex].Value.ToString() + "'"; cn = new SqlConnection(strCon); cmd = new SqlCommand(cmdStr, cn); cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); allorderGV.DataBind(); bindAllorder(); }
5. 数据库更新记录
与删除操作原理相同,对应的事件为OnRowUpdating。相关文章推荐
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- 今天在使用C#的ASP.NET给Access的数据库中添加新记录发现的问题
- asp.net/C#连接数据库
- ASP.Net C#2.0全能数据库组件 (含下载实例源码地址)
- Asp.net(c#)数据库操作类
- [ASP.net(C#)]数据库操作类(可用于任意数据库)
- asp.net/c#字符格式化大总结
- asp.net 数据库存储过程使用 c#
- C# asp.net 数据库连接wj-wangjun
- ASP.NET中常用功能代码总结(上传图片到数据库,从数据库中读取图片)
- ASP.Net C#2.0全能数据库组件 (含下载实例源码地址)
- ASP.NET(C#)中使数据库中读取的文本换原格式显示的函数
- ASP.NET中存取图片到数据库的示例(C#)
- Asp.Net(C#) 遍历数据库表名,列名
- ASP.NET中读取数据库总结
- ASP.NET中常用功能代码总结(3)——上传图片到数据库
- asp.net with c#连接sql 2000数据库
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- ASP.Net C#2.0全能数据库组件 (含下载实例源码地址)
- asp.net 2.0教程 c#中的接口、抽象、委托