ADO.NET 数据访问技术

 

 一、数据库访问

1、数据库连接

       为了让连接对象知道将要访问的数据库文件在哪里,用户必须将这些信息用一个字符串连接,数据库连接字符串中需要提供必要信息包括服务器名、数据库名称和数据库的验证方式,另外可以指定其他的信息。

 string  connectionString= "Data Source=服务器地址;Initial Catalog=数据库名;User Id=用登录账户;Password=登录密码";

2、查询数据库

实现步骤:

(1)使用SqlConnection对象连接数据库

(2)使用Command对象对数据源进行操作,实现操作的方式可以使用SQL语句,也可以使用存储过程。推荐使用SQL语句

情况一:查询,返回一个查询值,返回查询有效:

 public class AdminBLL
    {
 
        public static int[] sysLogin(UserModel m)
        {
            string str = "select  列名  from 数据表名 where 查询条件"; //查询数据库

            UserDAL d = new UserDAL();
            return d.ExecuteScalar(str);//返回大于0,则表示查询成功
        }
     }

 public class UserDAL
    {

 
        string  strCon= "";//数据库连接,填写服务器名,账号、密码等
        SqlConnection conn;

s>
        public int[] ExecuteScalar(string str)   //函数查询后返回一个数组
        {
            int[] returndata={0,0};
            try
            {
                conn = new SqlConnection(strCon);//创建数据库连接对象
                conn.Open();//打开数据库连接
                SqlCommand comm = new SqlCommand(str, conn);//创建SqlCommand对象
                Object objRusult=comm.ExecuteScalar();//用于执行SELECT查询命令,返回数据中第一行的第一列值
 
                SqlDataReader sqldr = comm.ExecuteReader();//用于执行SELECT查询命令,并返回一个DataReader对象
                while (sqldr.Read())
                {
                    int  i =Convert.ToInt32  ( sqldr[0]);//返回查询结果
                    returndata[1] = i;
                  
                }

                conn.Close();//关闭数库连接
                if (objRusult != null)//对象非空,表示本次查询有效
                {
                    returndata[0] = 1;
                    return returndata;
                }
                else
                {
                    returndata[0]=0;
                    return returndata;
                }
            }
            catch (Exception Error)
            {
                throw Error;
            }
        }

    }

情况二:使用DataGridView控件显示全部的查询结果

 

(1) WinForm中声明DataGridView控件

            DataGridView DataView2;
            DataView2 = new DataGridView();
            panel2.Controls.Add(DataView2);
            DataView2.Size = new Size(1040, 564);
            DataView2.Location = new Point(2, 170);
            DataView2.Font = new Font("Arial", 15);
            DataView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
            DataView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            DataView2.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllHeaders;
            DataView2.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
            DataView2.ColumnHeadersHeightSizeMode = 
            DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
            DataView2.ClearSelection();
            DataView2.TabStop = false;
            DataView2.CurrentCell = null;
            DataView2.SelectionMode = DataGridViewSelectionMode.CellSelect;
            DataView2.ColumnHeadersHeight = 50;
            DataView2.Visible = false;
            DataView2.BackgroundColor = Color.White;

(2)查询过程

       //query processing event 
        private void panel2_search()
        {
            book.Title = Tb1.Text.ToString().Trim();//获取要查询的判别条件
 
            SearchBookBLL.searchBook(book);    
            DataView2.DataSource = SearchBookBLL.ds.Tables [0];//将查询的数据集显示在DataView
  
            DataView2.Visible = true;

        }  
  
public class SearchBookBLL
    {

        public static DataSet ds;//声明数据集对象
        private static string str;
        private static void sql(Book_info m)
        {
            
          str = @"select";//设置SQL查询语句
            
        }
        //search media
        public static void searchBook(Book_info m)
        {
            sql(m);//generate SQL search sentence
            SearchDAL d = new SearchDAL();
            d.ExecuteSearch(str);//select from mssql
            SearchBookBLL.ds = SearchDAL.ds;//获取查询的数据集
        }  
}
 public class SearchDAL
    {
        private SqlDataAdapter da;//声明数据库桥接对象
        public static DataSet ds;//设置查询数据集
        private static SqlConnection con()
        {
            return new SqlConnection("");//连接语句
        }

        public void ExecuteSearch(string str)   
        {
            SqlConnection con = SearchDAL.con();//创建数据库连接对象
            try
            {
                con.Open();
                da = new SqlDataAdapter(str, con);//获取数据表中查询后的所有数据
                ds = new DataSet();//创建数据集对象
                da.Fill(ds);//填充数据集
            }
            catch (Exception Error)
            {
                throw Error;
            }
            finally
            {
                con.Close();
            }
        }
}

3、修改数据

  public static int UserModify(Stu_info m, int modifyDataflag,string username)
        {
            string str = "";
      
                str = "update 数据表名  set 列名=值 where 条件";

            InsertDAL d = new InsertDAL();
            b = d.ExecuteInsert(str);

            return b;//返回大于0,代表修改数据库有效
        }

 public class InsertDAL
        {

        public static string lib_card = string.Empty;
        private int b = 0;
        private static SqlConnection con()
        {
            return new SqlConnection("");//数据库连接字符串
        }
 

        public int ExecuteInsert(string str)  
        {
            SqlConnection con = InsertDAL.con();
            try
            {
                con.Open();
                SqlCommand com = new SqlCommand(str, con);  
                b = com.ExecuteNonQuery();
              }
            catch (Exception Error)
            {
                throw Error;
            }
            finally
            {
                con.Close();
            }
            return b;  //return resultObject
        }
    }

4、删除数据

删除语句与修改数据库相同,只是将修改SQL语句改为删除即可

str = "delete from 数据表明 where 删除条件 ";   

5、插入数据

插入数据也是在修改数据库的基础上,修改SQL语句

 str = "insert 表名(列名)  values(值)";

 

你可能感兴趣的:(C#,ADO.NET,WinForm)