ado.net 笔记
来源:互联网 发布:苹果电脑的解压缩软件 编辑:程序博客网 时间:2024/06/05 06:49
protected void Page_Load(object sender, EventArgs e)
{ string dataDir = AppDomain.CurrentDomain.BaseDirectory; if (dataDir.EndsWith(@"\bin\Debug\")|| dataDir.EndsWith(@"\bin\Release\")) { dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName; AppDomain.CurrentDomain.SetData("DataDirectory", dataDir); } SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"); try { conn.Open(); Response.Write("数据库连接成功!"); } catch(Exception ee) { Response.Write("连接失败,原因为:"+ee.Message); } }
SqlDataReader reader=cmd.ExecuteReader();
reader.GetString(i);方法通过第i列的方法获取表中第i列的数据。
reader.GetOrdinal("user");通过列名来获取资源数据
readre.read();//向前读取一行一行进行的。不能回退
SQL并不区分大小写,但是还是推荐使用大写来写SQL语句,这样能够在应用程序中清晰的辨认
ExecuteScaler : 只读,读取返回结果集合里面第一行第一列
ExecuteNonQuery:只写,适合于只需要修改的情况
ExecuteReader:只读,可以读取多行
DataAdapter / DataSet:读取之后,可以进行离线操作,然后再把改动update回数据苦,功能相当于一个数据库:有relation,constraint,view,sort,search支持,而且可以直接和.net控件绑定,相当于一个business层的功能,还可以通过webservice传输到其它远程机器,非常方便。
Open()
使用 ConnectionString 所指定的属性设置打开数据库连接。
命名空间:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中)
Close();//但是还是可以打开
关闭与数据库的连接。这是关闭任何打开连接的首选方法。
命名空间:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中)
dispose()后就不能再次打开;
using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select * from users"; using(SqlDataReader reader=cmd.ExecuteReader()) {
using在出了作用域后会调用dispose(),SqlConnection,filestream等的dispose内部会判断有没有close,如果没有close就close后再dispose();
SqlCommand.ExecuteScalar 方法执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。 string cmdstr = "select count(*) from users where UserName='"+username+"' and PassWord='"+password+"'"; SqlCommand cmd = new SqlCommand(cmdstr,conn); int i = Convert.ToInt32(cmd.ExecuteScalar());//如?果?查é到?有瓺的?话°,?i是?一?个?非?零?值μ,?否?则ò为a零?值μ
conn.Open(); //下面这种方式有漏洞 // string cmdstr = "select count(*) from users where UserName='"+username+"' and PassWord='"+password+"'"; //上面这种方法会有注入漏洞攻击风险 //下面这种方法可以避免: string cmdstr = "select count(*) from users where UserName=@u and PassWord=@p"; SqlCommand cmd = new SqlCommand(cmdstr,conn); cmd.Parameters.Add(new SqlParameter("u", username)); cmd.Parameters.Add(new SqlParameter("p",password)); int i = Convert.ToInt32(cmd.ExecuteScalar());//如果查到有的话,i是一个非零值,否则为零值 if (i > 0) { Console.WriteLine("恭喜您,登录成功!!"+i); } else { Console.WriteLine("用户名或者密码错误,登录失败!!!!!!!"+i); }
利用configuration文件来连接数据库:
<configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> <appSettings> <add key="constring" value="server=.;database=Northwind;uid=sa;pwd=;"/> </appSettings></configuration>
然后在程序中引用
SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["constring"]); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select * from Customers"; cmd.Connection = con; con.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Response.Write(reader.GetString(0)+"\t"+reader.GetString(1)+"<br/>"); } con.Close();
下面是连接成功后的输出结果:
- ADO.NET学习笔记
- ADO.NET学习笔记
- ADO.net学习笔记
- ado.net 学习笔记
- ADO.NET学习笔记
- ADO.NET 学习笔记
- ADO.NET笔记一
- ADO.NET笔记一
- ADO.NET笔记二
- ADO.NET笔记三
- ADO.NET学习笔记
- ADO.net学习笔记
- ADO.NET DataSet:笔记
- ado.net 笔记
- ado.net学习笔记
- ADO.NET入门笔记
- ADO.NET笔记
- ADO.NET学习笔记
- WinHex进行取证调查
- C++ 内存池 -- C++ Memory Pool
- Hibernate_list和iterate的不同之处
- 黑马程序员_android Activity生命周期
- WinHex数据恢复使用教程
- ado.net 笔记
- 指针入门指导 -- A Beginner's guide to Pointers
- 设计模式之备忘录模式
- 硬盘存储结构及分区简介
- 硬盘的文件系统结构
- java构造函数之private,protected
- Windows游戏设计(三)- 黑白棋游戏 - 使用Win32 SDK
- 黑马程序员_android NFC基础
- C语言提供搜索(bsearch)和排序(qsort)的函数