日期:2014-05-17  浏览次数:20503 次

牛人请进:一段代码,事务及效率方面要不要改进?
下面是我正在编辑项目中的一段代码,一字未改。
运行时正常,逻辑应该没有问题。
我想请问:效率和事务方面要不要改进?虽然下面此种情况添加的记录不会太多,但如果添加记录达成千上万条,这种事务处理方法有没有问题?效率会不会太低?

期待牛人的分析!

#region 方法:public int ImportFromTxt(string _filename)。清空正则表达式语法表 W_REGEXSTD 记录,从文本文件解析数据并重新导入表中。
/// <summary>
/// 清空正则表达式语法表 W_REGEXSTD 记录,从文本文件解析数据并重新导入表中。
/// </summary>
/// <param name="_filename">文本文件名</param>
/// <returns>有效语法类别数 * 10000 + 有效记录数</returns>
public int ImportFromTxt(string _filename)
{
    //文本文件的格式已经其他类检测正确才可以实例运行本方法,文本基本格式如下:
    //###正则表达式语法说明###
    //语法类别:>=元字符
    //\b语法说明:>=单词
    //\n语法说明:>=换行

    string str;//读取的行数据
    string linegroup = "";//类别
    int group = 0;//类别数
    int records = 0;//记录数
    StreamReader sr = new StreamReader(_filename, Encoding.Default); //using System.IO 、using System.Text;

    W_DATA wd = new W_DATA();
    SqlConnection conn = wd.GetConn();
    using (conn)
    {
        SqlCommand cmd = new SqlCommand("Truncate table W_REGEXSTD", conn);
        cmd.CommandType = CommandType.Text;

        conn.Open();
        SqlTransaction myTrans = conn.BeginTransaction();
        cmd.Transaction = myTrans;
        try
        {
            cmd.ExecuteNonQuery();
            cmd.CommandText = "pro_insert_REGEXSTD";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@admin_name", SqlDbType.NVarChar, 50);
            cmd.Parameters.Add("@admin_expression", SqlDbType.NVarChar, 50);
            cmd.Parameters.Add("@admin_directions", SqlDbType.NVarChar);