ADO访问数据库总结.docx_第1页
ADO访问数据库总结.docx_第2页
ADO访问数据库总结.docx_第3页
ADO访问数据库总结.docx_第4页
ADO访问数据库总结.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ADO.NET访问数据库连接数据库首先要有连接字符串,然后是建立连接对象,然后打开连接使用完毕之后关闭连接(或者使用using语句块)/使用sql server方式登陆/Data Source:要连接的服务器名称/Initial Catalog:要连接的数据库名称string sqlServerConstr = Data Source=.wqserver; Initial Catalog=lianxi1; User Id=ass; Password=123456;/使用windows身份验证方式登陆/Integrated Security=true:设置集成安全string constr = Data Source=.wqserver; Initial Catalog=lianxi1; Integrated Security=true;/建立连接对象SqlConnection connection = new SqlConnection(sqlServerConstr);/连接数据库connection.Open();MessageBox.Show(打开成功);connection.Close();connection.Dispose();MessageBox.Show(关闭连接);使用using语句块/使用windows身份验证方式登陆string constr = Data Source=.wqserver; Initial Catalog=lianxi1; Integrated Security=true;/using语句块(在using语句块中开辟的资源会在using语句块结束后自动释放)using (conn=new SqlConnection(constr) /打开连接 conn.Open(); MessageBox.Show(打开成功); /使用 /这里不用手动关闭了哟没关闭之前不能重复打开,所以可以在打开之前做一下判断/判断当前对象是否已连接if(ConnectionState.Closed=conn.State) conn.Open();注意:可以重复关闭/当状态改变时会触发一个事件conn.StateChange += new StateChangeEventHandler(conn_StateChange);/=void conn_StateChange(object sender, StateChangeEventArgs e) /获取当前状态 MessageBox.Show(e.CurrentState.ToString(); 自动生成连接字符串方法一这里以vs2010为例1)工具连接到数据库选择数据源,这里我选Microsoft SQL Server,选择好之后点击继续选择好要连接的地方后,点击高级这里就是你想要的连接字符串了,复制出来就可以了方法二/新建一个连接字符串类 SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(); /设置服务器名 scsb.DataSource = .wqserver; /设置要连接的数据库 scsb.InitialCatalog = lianxi1; /集成安全 scsb.IntegratedSecurity = true; /获取连接字符串 string constr = scsb.ConnectionString;基本增删查改执行非查询语句string constr = Data Source=.wqserver; Initial Catalog=webshop; Integrated Security=true;using (SqlConnection conn=new SqlConnection(constr) /编写sql语句 string sql = insert into users(u_ID,u_Name,u_Type,u_Password)values(312,sada,普通,gdfgec); /创建一个命令对象,执行sql语句 using(SqlCommand cmd=new SqlCommand(sql,conn) /打开连接 conn.Open(); / 执行一个非查询sql语句,返回受影响的行数 int n= cmd.ExecuteNonQuery(); /判断sql语句是否执行成功 if(n0) MessageBox.Show(执行成功); 执行查询语句string constr = Data Source=.wqserver; Initial Catalog=webshop; Integrated Security=true;using (SqlConnection conn=new SqlConnection(constr) /编写sql查询语句 string sql = select * from goods; /创建一个命令对象,执行sql语句 using(SqlCommand cmd=new SqlCommand(sql,conn) /打开连接 conn.Open(); /执行一个查询sql语句,返回查询结果 using (SqlDataReader dataReader=cmd.ExecuteReader() /判断查询结果是否有数据 if(dataReader.HasRows) /将游标指向下一两条数据(循环取出每一条记录) while (dataReader.Read() /获取记录的第一列的数据 string str = dataReader.GetValue(0).ToString();/获取记录的第二列的数据 str += (- + dataReader.GetValue(1).ToString(); listBox1.Items.Add(str); 当查询结果为单行单列时用/返回查询结果的第一行第一列cmd.ExecuteScalar();根据列名获取列的索引int n = dataReader.GetOrdinal(name);获取当前记录的字段长度/循环读取一条记录for (int i = 0; i dataReader.FieldCount; i+) Console.WriteLine(dataReader.GetValue(i);当有多个结果集的时候/前进到下一个结果集while (dataReader.NextResult() /判断是否查询到记录 if (dataReader.HasRows) /前进到下一条记录 while (dataReader.Read() /循环读取一条记录 for (int i = 0; i dataReader.FieldCount; i+) Console.WriteLine(dataReader.GetValue(i); 带参数的sql语句/带参数的sql语句string sql = select * from name;/using (SqlCommand cmd = new SqlCommand(sql, conn) /设置参数 cmd.Parameters.AddWithValue(name, goods);注意:表名列名不能用参数代替的获取配置文件中的连接字符串首先创建一个配置文件选择常规应用程序配置文件配置文件名称一定不要改哟,用默认的就好,改了会出错的。打开配置文件就可以写连接字符串了在使用配置文件的时候需要添加引用在项目中使用配置文件中的连接字符串/获取配置文件中的连接字符串string constr = ConfigurationManager.ConnectionStringssql.ConnectionString;数据绑定/创建一个集合List personList = new List();person per = new person() Id = 100, Name = 张三;person per2 = new person() Id = 111, Name = 李四 ;/添加数据personList.Add(per);personList.Add(per2);/设置控件中每一项实际显示的值listBox1.DisplayMember = Name;/设置控件中每一项value中实际存储的值listBox1.ValueMember = Id;/绑定数据源listBox1.DataSource = personList;person类public class person /一定要设置成属性,不能是字段,否则无法绑定的 public int Id get; set; public string Name get; set; 获取值/获取选中项value中的实际值int id = (int) listBox1.SelectedValue;DataSet的使用什么是DataSet:数据集合,临时数据库,内存数据库string constr = Data Source=.wqserver; Initial Catalog=WebShop; Integrated Security=true;string sql = select * from goods;/创建连接数据库的一个适配器SqlDataAdapter adapter = new SqlDataAdapter(sql, constr);/创建一个DataSetDataSet ds=new DataSet();/绑定DataSetadapter.Fill(ds);/绑定数据dataGridView1.DataSource = ds.Tables0;使用SQLDataAdapter实现分页string constr = Data Source=.wqserver; Initial Catalog=WebShop; Integrated Security=true;string sql = select * from goods;/创建连接数据库的一个适配器SqlDataAdapter adapter = new SqlDataAdapter(sql, constr);/创建一个表DataTable daaTable = new DataTable();/绑定,只要前5行数据adapter.Fill(0, 5, daaTable);/绑定数据dataGridView1.DataSource = daaTable;封装SQLHelper/ / 可以实现增删查改/ public static class SqlHelper /获取配置文件中的连接字符串,并设置成只读的 private static readonly string constr = ConfigurationManager.ConnectionStringssql.ConnectionString; / / 执行非查询语句,返回受影响的行数 / / sql语句 / 参数 / 返回受影响的行数 public static int ExecuteNonQuery(string sql,params SqlParameter pms) using (SqlConnection conn=new SqlConnection(constr) using (SqlCommand cmd=new SqlCommand(sql,conn) if (pms!=null) cmd.Parameters.AddRange(pms); conn.Open(); return cmd.ExecuteNonQuery(); / / 执行非查询语句,返回首行首列 / / sql语句 / sql的参数 / 返回首行首列 public static object ExecuteScalar(string sql,params SqlParameter pms) using (SqlConnection conn = new SqlConnection(constr) using (SqlCommand cmd = new SqlCommand(sql, conn) if (pms != null) cmd.Parameters.AddRange(pms); conn.Open(); return cmd.ExecuteScalar(); / / 执行一个查询语句,返回一个SQLDataReader,用完几个close哟 / / sql语句 / sql语句的参数 / 返回的SQLDataReader public static SqlDataReader ExecuteReader(string sql,params SqlParameter pms) SqlConnection conn = new SqlConnection(constr); using (SqlCommand cmd=new SqlCommand(sql,conn) if(pms!=null) cmd.Parameters.AddRange(pms); conn.Open(); /设置这个参数后,以后当用户关闭reader时,sqlconnection也就自动关闭了 return cmd.ExecuteReader(CommandBehavior.CloseConnection); / / 执行一个查询语句,返回一个DataTable / / sql语句 / 参数 / 返回DataTable public static DataTable ExecuteDataTable(string sql,params SqlParameter pms) SqlDataAdapter sqlAdapter = new SqlDataAdapter(sql,constr); if (pms!=null) sqlAdapter.SelectCommand.Parameters.AddRange(pms); DataTable dt = new DataTable(); sqlAdapter.Fill(dt); return dt; 调用存储过程实例:验证用户登录string uid = tb_uid.Text;string pwd = tb_pwd.Text;string constr = ConfigurationManager.ConnectionStringssql.ConnectionString;bool tag; /用来接受存储过程中那个output参数using(SqlConnection conn=new SqlConnection( constr) /调用存储过程只需要写存储过程名称,参数在后面再加 string sql = ulogin; using (SqlCommand cmd=new SqlCommand(sql,conn) /设置参数 SqlParameter pms=new SqlParameter new SqlParameter(uid,uid), new SqlParameter( pwd,pwd), /output输出参数就不需要设置值了 new SqlParameter(tag,SqlDbType.Bit) ; /设置参数为输出参数 pms2.Direction = ParameterDirection.Output; cmd.Parameters.AddRange(pms); /设置命令类型为存储过程 cmd.CommandType = CommandType.StoredProcedure; conn.Open(); /这里用下面三个方法哪一个都行,只要执行了sql语句就行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论