ADO.NET----8.8

      这两天学的最重要的知识就是如何把数据库和C#联系在一块。学会了了把主函数中重要的代码都抽象出来,封装成函数。这样方便以后的调用也减少了主函数的臃肿。

   首先知道ADO.NET是断开式数据库,是把所有的数据库对象转换成C#对象。

   我在数据库中建了一个my数据库,在my里建了一个star的表,表里有name,sex,age三列。

  下面这个函数就是这两天整理的用C#操作star表相关方法,其中的SqlHelper类可以保存着以后都可以用的。

using System;
using System.Data;
using System.Data.SqlClient;
public class Helper
{
    public static void Main()
    {    
        string strcon = "server=.;database=my;uid=sa;pwd=1";
        SqlHelper helper = new SqlHelper(strcon);
    //----------------------------------------------------------------//
        //非查询没变量
        string sql1 = "delete from star where name = '林志玲'";            
        //非查询有变量
        string sql = "insert into star values(@name,@sex,@age)";
        
        SqlParameter[] ps = new SqlParameter[]
        {
            new SqlParameter("@name",SqlDbType.VarChar,20),
            new SqlParameter("@sex",SqlDbType.VarChar,4),
            new SqlParameter("@age",SqlDbType.Int,4)
        };
        ps[0].Value = "林志玲";
        ps[1].Value = "";
        ps[2].Value = 30;
//--------------------------------------------------------------------------//
        //查询语句无变量
        string sql2 = "select * from star";
    //---------------**********---------------//
        //查询语句有变量
        string sql3="select * from star where age=@age";
        SqlParameter ps1 = new SqlParameter("@age",SqlDbType.Int,4);
        ps1.Value = 38;        
        SqlDataReader reader = helper.ExecuteQuery(sql3,ps1);
        using(reader)
        {
            while (reader.Read())
            {
                Console.WriteLine(reader["name"].ToString()+reader["sex"].ToString()  + reader["age"].ToString());
            }
        }
    //-----------------------------------------------------------------------------//
        helper.Close();
    }
}
public class SqlHelper
{
    private SqlConnection con = null;
    private SqlCommand cmd = null;
    private string connectionString;
    public string ConnectionString
    {
        get{return this.connectionString;}
        set{this.connectionString = value;}
    }
    public SqlHelper(string strcon)
    {
        con = new SqlConnection(strcon);
        cmd = new SqlCommand();
        cmd.Connection = con; 
        this.connectionString =strcon;
    }    
    /*
        执行非查询语句
    */    
    public int ExecuteNonQuery(string sql,params SqlParameter[] param)
    {
        PreparedCommand(sql,param);
        int i = cmd.ExecuteNonQuery();
        con.Close();
        return i;
    }
    public int ExecuteNonQuery(string sql)
    {
        PreparedCommand(sql,null);
        int i = cmd.ExecuteNonQuery();
        con.Close();
        return i;
    }
    /*
        执行查询语句
    */    
    public SqlDataReader ExecuteQuery(string sql,params SqlParameter[] param)
    {
        PreparedCommand(sql,param);
        return cmd.ExecuteReader();         
    }
    public SqlDataReader ExecuteQuery(string sql)
    {
        PreparedCommand(sql,null);
        return cmd.ExecuteReader();
    }


    /*
        用来准备(初始化)Command对象
    */
    public void PreparedCommand(string sql,params SqlParameter[] param)
    {
        
        /*
        SqlCommand cmd1 = null;
        if(cmd!=null)
        {
            cmd1 = cmd;
        }
        else{
            cmd1 = new SqlCommand();
        }*/
        cmd.CommandText = sql;
        //清空Parameters中的参数
        cmd.Parameters.Clear();
        if(param!=null)
        {
            foreach(SqlParameter p in param)
            {
                cmd.Parameters.Add(p);
            }
        }
        con.Open();
    }
    /*
        打开数据库
    */
    private void Open()
    {
        con.Open();
    }
    /*
        关闭数据库
    */
    public void Close()
    {
        cmd.Dispose();        
        con.Close();
    }    
}

 

转载于:https://www.cnblogs.com/lan-net/archive/2012/08/08/2628858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值