簡體   English   中英

System.Data.SqlClient.SqlDataReader不包含“打開”的定義

[英]System.Data.SqlClient.SqlDataReader does not contain a definition for 'open'

關閉數據閱讀器后如何打開它? 我正在使用Visual Studio 2010。

這是我的代碼。

bool result = Directory.EnumerateFiles(@"C:\Users\Moon\Documents\Visual Studio 2010\Projects\cdrInsertion\cdrInsertion\TempFiles").Any();

if (!result)
{
   Response.Write("Folder is empty");
}
else 
{
   DirectoryInfo info = new DirectoryInfo(@"C:\Users\Moon\Documents\Visual Studio 2010\Projects\cdrInsertion\cdrInsertion\TempFiles");
   FileInfo[] files = info.GetFiles();

   SqlConnection con = new SqlConnection("Data Source = MOON-PC\\SQLEXPRESS; Initial Catalog = Call_Detail_Record; Integrated Security = true; Persist Security Info=False;");
   con.Open();

   SqlCommand cmd = new SqlCommand();

   SqlDataReader readr = null;

   foreach (FileInfo file in files) 
   {
       string path = @"C:\Users\Moon\Documents\Visual Studio 2010\Projects\cdrInsertion\cdrInsertion\TempFiles\"+ file;
       string queryfile = "select * from file_log";
       cmd = new SqlCommand(queryfile,con);
       readr = cmd.ExecuteReader();

       while (readr.Read())
       {
           (readr.Open();)<----here i want to open it.

           string filnames = readr["file-name"].ToString();
           string filestring = file.ToString();

           if (filnames.Equals(filestring))
           {
              Response.Write("file already inserted");
              readr.Close();
           }
           else 
           {
              string text = System.IO.File.ReadAllText(path);

              string[] lines = text.Split('\n');
              //transctionscop
              // DataTable dt = new DataTable();

              // cmd = new SqlCommand();
              string[] Values;

              foreach (string line1 in lines)
              {
                 if (line1 == "")
                 {
                    Response.Write("end file");
                 }
                 else
                 {
                    Values = line1.Split(';');
                    DateTime zero = Convert.ToDateTime(Values[0]);
                    //  DateTime onezerofive = Convert.ToDateTime(Values[105]);
                    // DateTime onezerosix = Convert.ToDateTime(Values[106]);
                    //  Timer two = Convert.Tot(Values[2]);

                    // string query = "INSERT INTO cdr_info VALUES ('" + Values[0] + "'," + Values[1] + ",'" + Values[2] + "','" + Values[3] + "'," +
                    string query = "INSERT INTO cdr_info VALUES( '" + zero + "', '" + Values[1] + "', '" + Values[2] + "',  '" + Values[3] + "', '" + Values[4] + "',  '" + Values[5] + "', '" + Values[6] + "',  '" + Values[7] + "',  '" + Values[8] + "', '" + Values[9] + "'," +
        " '" + Values[10] + "',  '" + Values[11] + "',  '" + Values[12] + "',  '" + Values[13] + "',  '" + Values[14] + "','" + Values[15] + "', '" + Values[16] + "',  '" + Values[17] + "',  '" + Values[18] + "','" + Values[19] + "'," +
        "'" + Values[20] + "','" + Values[21] + "', '" + Values[22] + "',  '" + Values[23] + "',  '" + Values[24] + "',  '" + Values[25] + "','" + Values[26] + "',  '" + Values[27] + "', '" + Values[28] + "', '" + Values[29] + "', " +
        " '" + Values[30] + "', '" + Values[31] + "',  '" + Values[32] + "',  '" + Values[33] + "',  '" + Values[34] + "'," +
        "'" + Values[35] + "',  '" + Values[36] + "',  '" + Values[37] + "',  '" + Values[38] + "','" + Values[39] + "', '" + Values[40] + "', '" + Values[41] + "', '" + Values[42] + "'," +
        "'" + Values[43] + "', '" + Values[44] + "',  '" + Values[45] + "',  '" + Values[46] + "',  '" + Values[47] + "',  '" + Values[48] + "',  '" + Values[49] + "','" + Values[50] + "', '" + Values[51] + "'," +
        " '" + Values[52] + "', '" + Values[53] + "',  '" + Values[54] + "',  '" + Values[55] + "',  '" + Values[56] + "','" + Values[57] + "', '" + Values[58] + "', '" + Values[59] + "', '" + Values[60] + "', '" + Values[61] + "'," +
        "'" + Values[62] + "', '" + Values[63] + "',  '" + Values[64] + "', '" + Values[65] + "', '" + Values[66] + "','" + Values[67] + "','" + Values[68] + "','" + Values[69] + "', '" + Values[70] + "'," +
        "'" + Values[71] + "', '" + Values[72] + "','" + Values[73] + "','" + Values[74] + "', '" + Values[75] + "',  '" + Values[76] + "',  '" + Values[77] + "',  '" + Values[78] + "',  '" + Values[79] + "',  '" + Values[80] + "'," +
        "  '" + Values[81] + "',  '" + Values[82] + "',  '" + Values[83] + "',  '" + Values[84] + "',  '" + Values[85] + "','" + Values[86] + "', '" + Values[87] + "','" + Values[88] + "', '" + Values[89] + "',  '" + Values[90] + "'," +
        "  '" + Values[91] + "',  '" + Values[92] + "', '" + Values[93] + "', '" + Values[94] + "',  '" + Values[95] + "', '" + Values[96] + "',  '" + Values[97] + "', '" + Values[98] + "',  '" + Values[99] + "',  '" + Values[100] + "'," +
        "  '" + Values[101] + "',  '" + Values[102] + "',  '" + Values[103] + "'," +
        " '" + Values[104] + "',  '" + Values[105] + "',  '" + Values[106] + "',  '" + Values[107] + "', '" + Values[108] + "')";
                            // string query = "INSERT INTO demooo VALUES ('" + Values[0] + "','" + Values[1] + "','" + Values[2] + "')";
                    cmd = new SqlCommand(query, con);
                    cmd.ExecuteNonQuery();
                }
            }
       }
   }
   readr.Close();
}

閱讀器已經打開。 當您在命令上調用ExecuteReader時,它將返回一個打開的數據讀取器。

為什么要在循環內關閉數據讀取器? 無論如何,您在循環后都會有一個Close呼叫,為什么還要兩次將其關閉? 您應該做的是using語句創建它,然后在代碼塊末尾隱式關閉它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM