黑马程序员——连接多次打开效率问题

本文对比分析了两种SQL数据插入方式:每次插入数据后关闭连接与保持连接打开直至所有数据插入完毕的方法。通过实例展示了连接复用的具体实现,并讨论了这两种方法在执行效率上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.比较下面代码,两段代码执行时间差不多,代码一中使用了连接复用(每次并不是真正关闭,连接池)
    1)每插入一条数据,连接打开“关闭”
     string[] telNum = File.ReadAllLines(ofd.FileName, Encoding.Default).ToArray();
    //            for (int i = 1; i < telNum.Count(); ++i)
    //            {
    //                string[] strs = telNum[i].Split('\t');//Tab键转义为“\t”
    //                string telnum = strs[0];
    //                string telarea = strs[1];
    //                string teltype = strs[2];
    //                string areanum = strs[3];
    //                SqlHelper.ExecuteNonQuery(sql,
    //                    new SqlParameter("@TelNum", telnum),
    //                    new SqlParameter("@TelNumArea", telarea),
    //                    new SqlParameter("@TelNumType", teltype),
    //                    new SqlParameter("@AreaNum", areanum));
    //            }


    2)一次打开,插入完成再关闭
     string[] telNum = File.ReadAllLines(ofd.FileName, Encoding.Default).ToArray();
            using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=stu;User ID=sa;Password=tao201415shu"))
            {
                conn.Open();
                using(SqlCommand cmd=conn.CreateCommand())
                {
                   
                    
                    for (int i = 1; i < telNum.Count(); ++i)
                    {
                        string[] strs = telNum[i].Split('\t');//Tab键转义为“\t”
                        string telnum = strs[0].Trim('"');
                        string telarea = strs[1].Trim('"');
                        string teltype = strs[2].Trim('"');
                        string areanum = strs[3].Trim('"');
                        //cmd.Parameters.Add(new SqlParameter("@TelNum", telnum));
                        //cmd.Parameters.Add(new SqlParameter("@TelNumArea", telarea));
                        //cmd.Parameters.Add(new SqlParameter("@TelNumType", teltype));
                        //cmd.Parameters.Add(new SqlParameter("@AreaNum", areanum));
                        //AddParams(cmd, strs);
                        sql = "insert into T_TelNumSearch(TelNum,TelNumArea,TelNumType,AreaNum)values('"+telnum+"','"+telarea+"','"+teltype+"','"+areanum+"')";
                        cmd.CommandText = sql;
                        cmd.ExecuteNonQuery();
                    }
                }
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值